Отладка с Claude Code: от симптома к root cause

Сильная отладка начинается не с редактирования, а с воспроизводимого симптома и цепочки доказательств до первопричины.

Краткий ответ

Сильная отладка начинается не с редактирования, а с воспроизводимого симптома и цепочки доказательств до первопричины. Claude Code удобен тем, что может запустить падающую команду, изучить стек, проследить данные по нескольким файлам и закрепить исправление тестом.

Сильная отладка начинается не с редактирования, а с воспроизводимого симптома и цепочки доказательств до первопричины. Claude Code удобен тем, что может запустить падающую команду, изучить стек, проследить данные по нескольким файлам и закрепить исправление тестом.

Зафиксируйте наблюдаемое поведение

Передайте точное сообщение об ошибке, команду запуска, входные данные, окружение и отличие ожидаемого результата от фактического. Если ошибка плавающая, укажите частоту, время и конкурентные условия. Не называйте гипотезу фактом.

Официальный workflow предлагает сначала поделиться ошибкой, затем запросить варианты исправления и только после выбора применить решение.

Сузьте область экспериментов

Попросите агента найти минимальный воспроизводимый путь. Временно добавленные логи должны отвечать конкретному вопросу и быть удалены из production-кода, если не несут постоянной наблюдаемости. Меняйте одну переменную за раз: иначе неизвестно, какое действие повлияло на результат.

Для каждого вывода полезно спрашивать: «Какие данные это подтверждают и что могло бы его опровергнуть?»

Исправляйте причину, а не маскируйте симптом

Повторный retry, лишняя проверка на null или увеличенный timeout могут скрыть дефект. Root cause объясняет весь наблюдаемый сценарий и предсказывает поведение после изменения. Если агент предлагает несколько вариантов, сравните их по корректности, области и риску регрессии.

Regression-тест

Лучший тест падает на прежней реализации по той же причине, что и пользовательский сценарий, и проходит после минимального исправления. Он не должен быть привязан к случайной внутренней детали. После него запустите соседние проверки: первопричина могла затрагивать общую функцию.

Практика: диагностический prompt

> Команда npm test падает с приложенным стеком только при повторном запуске набора. Сначала воспроизведи и установи, какое состояние протекает между тестами. Не меняй код до подтверждённой причины. Предложи два варианта, выбери минимальный, добавь regression-тест и покажи результаты одиночного и повторного запуска.

Оцените, доказана ли именно утечка состояния.

Частые вопросы

Стоит ли сразу просить «починить ошибку»?

Для простой локальной проблемы это допустимо, но в критериях всё равно нужны воспроизведение и проверка. Для сложной ошибки лучше явно отделить исследование.

Что делать с огромным логом?

Сохранить его в файл, указать временной диапазон и ключевой симптом, затем использовать поиск и выборочное чтение вместо вставки всего вывода.

Если тест проходит один раз, исправление готово?

Не обязательно. Для плавающего дефекта нужны повторения, контроль конкурентности или детерминированный тест причины.

Что важно запомнить

https://yadro-code.ru/lessons/without-university/claude-code-workflows/claude-code-15