Вайбцех

Агент сломал работавшее: 7 шагов разбора от симптома до отчёта

Опубликовано Обновлено 14 мин чтенияБазовый
Автор с приложенного фото показывает схему расследования, рядом удивлённый кот и карточки с материалами инцидента.
Что узнаете
  • шаблон хронологии инцидента с ожидаемым и фактическим поведением
  • порядок работы с симптомом, stack trace, гипотезами, проверкой и исправлением
  • список признаков, по которым инструкция модели не считается технической защитой
  • правила проверки результата и ограничения автономного режима
Применить за 30 мин
Базовый
4просмотров
Что в инструкции
  1. Что такое Claude Code и зачем он нужен?
  2. Как Claude Code работает с проектом?
  3. Что Claude Code может сделать при разборе инцидента?
  4. Какие команды нужны для навигации и анализа проекта?
  5. Как провести разбор инцидента по шагам?
  6. Как проверить исправление и не принять ошибку за решение?
  7. Что ломается, когда границы проекта кажутся безопасными?
  8. Вопросы и ответы

Что такое Claude Code и зачем он нужен?

Репозиторий Anthropic описывает Claude Code так:

Claude Code - агентный инструмент для работы с кодом, который живёт в терминале.

- Anthropic, репозиторий Claude Code

Запуск начинается из каталога проекта:

bash
claude

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

Security Engineering передаёт ему stack trace и документацию и просит проследить control flow через кодовую базу. Ручной поиск, который занимал 10-15 минут, в описанном примере стал занимать примерно 5 минут. Такой темп нельзя обещать для любого проекта. Скорость зависит от того, какие файлы доступны и насколько точный вопрос задан.

Актуальный релиз на 10 августа 2026 года - 2.1.227. Я не сверяюсь с номером версии при разборе ошибки: он не объясняет, почему агент ошибся в конкретном случае. Для расследования важнее другое: что он прочитал, какие выводы сделал и чем подтверждён результат.

Как Claude Code работает с проектом?

Кот в шоке смотрит на карточки с четырьмя этапами работы Claude Code.

При использовании claude code я держусь рабочей схемы Anthropic:

  1. Исследовать кодовую базу.
  2. Составить план.
  3. Внести изменения.
  4. Проверить результат.

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

Потом я прошу составить план. claude code plans нужны ради ясного списка действий: они показывают, какую причину агент считает вероятной и какие места собирается менять. Как и в Plan Mode, если план уходит в сторону, его проще остановить до правки, чем откатывать половину проекта.

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

Финальный этап - наблюдаемый результат. Это воспроизведение сбоя, тест или другая проверка, которая показывает исчезновение ошибки. Фраза «теперь должно работать» проверкой не считается.

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

Если хочешь собрать такую же цепочку на своём проекте и проверить её руками - приходи на практикум:

Практикум «Старт»

Три дня живой практики: от идеи до работающего проекта по ссылке

2 000 ₽старт 5 августа, 18:00 МСК

Что Claude Code может сделать при разборе инцидента?

При разборе инцидента агент может:

  • восстановить хронологию по временным отметкам, логам и истории изменений;
  • пройти по control flow от stack trace к участкам кода;
  • сопоставить появление ошибки с известными изменениями;
  • сформулировать несколько возможных причин;
  • показать, какие данные подтверждают или опровергают каждую гипотезу;
  • подготовить план исправления.

Я разделяю здесь две вещи. Агент может быстро построить рабочую версию объяснения. Версия объяснения становится фактом только после проверки данными.

Например, stack trace указывает путь, по которому ошибка дошла до пользователя. Он не доказывает, что первая строка в этом пути и есть причина. Причина могла появиться раньше, в данных, конфигурации или изменении, которое не попало в первый просмотр.

Поэтому после хронологии я прошу сформулировать несколько гипотез. Для каждой нужны:

  • подтверждающие факты;
  • факты против;
  • проверка, которая различит гипотезы;
  • ожидаемый результат этой проверки.

Так агент превращается из генератора ответа в помощника по расследованию. Он помогает сузить поиск. Решение о причине остаётся за наблюдаемыми данными.

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

Какие команды нужны для навигации и анализа проекта?

Запусти Claude Code из каталога проекта:

bash
claude

Внутри сессии пригодятся:

/usage

Показывает сведения о лимитах плана.

/rewind

Позволяет откатить разговор, чтобы отменить изменения кода.

Ctrl-R

Ищет по истории сообщений.

Я бы держал эти действия в голове как три разные кнопки:

  • /usage отвечает на вопрос о расходе и доступном лимите;
  • /rewind нужен, когда изменения пошли не туда;
  • Ctrl-R помогает найти прежнюю постановку или важный фрагмент разговора.

Я не добавляю сюда полный список команд. В фактуре для этой инструкции подтверждены именно эти возможности. Остальные команды навигации, анализа файлов и Git лучше сверять с официальным справочником Claude Code, потому что поведение и набор команд зависят от версии.

После запуска не начинай с просьбы «исправь всё». Напиши, что случилось, и попроси сначала прочитать доступные файлы и составить план без изменений. Так у тебя появляется точка контроля до первой правки.

Как провести разбор инцидента по шагам?

Мужчина закрывает лицо лападонью рядом с карточками этапов расследования инцидента.
  1. Передай исходные факты.

    Напиши, что именно сломалось, когда это произошло, какой результат ожидался, что произошло фактически, какой есть stack trace и какие изменения были внесены перед инцидентом.

    Контекст для расследования
    Помоги расследовать инцидент в текущем проекте.
    
    Симптом:
    Ожидаемое поведение:
    Фактическое поведение:
    Время появления:
    Stack trace:
    Изменения перед инцидентом:
    
    Сначала изучи доступные файлы, документацию и историю изменений. Ничего не исправляй. Составь хронологию и перечисли факты, которые удалось подтвердить.
  2. Попроси восстановить цепочку.

    Отдельно попроси пройти путь от события к ошибке. Мне важно увидеть, какие файлы и действия связывает агент, а не получить готовую правку.

    Восстановление цепочки
    Восстанови цепочку событий от известного изменения до наблюдаемого сбоя.
    
    Для каждого шага укажи:
    - факт и его источник;
    - файл или участок кода;
    - что произошло по времени;
    - что пока остаётся предположением.
    
    Не вноси изменения и не предлагай исправление на этом этапе.
  3. Сформулируй несколько гипотез.

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

    Гипотезы
    На основе подтвержденной хронологии сформулируй несколько независимых гипотез причины.
    
    Для каждой гипотезы укажи:
    - что её подтверждает;
    - что ей противоречит;
    - какую проверку можно выполнить;
    - какой результат подтвердит или опровергнет гипотезу.
    
    Не называй гипотезу доказанной без результата проверки.
  4. Проверь гипотезы наблюдаемыми данными.

    Используй логи, тест или воспроизведение сбоя. Если проверки нет, зафиксируй это как пробел, а уверенное объяснение не используй вместо неё.

    На этом месте я останавливаю агента, если он сразу переходит к коду. Сначала нужна проверка. Красивый рассказ о причине не заменяет лог, тест или повторяемый сбой.

    • сопоставь время ошибки с хронологией;
    • сравни фактический результат с ожидаемым;
    • проверь гипотезу отдельным тестом;
    • зафиксируй результат каждой проверки.
  5. Запроси ограниченное исправление.

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

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

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

  7. Запиши результат в отчёт.

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

    markdown
    ## Ожидаемое поведение
    
    ## Фактическое поведение
    
    ## Хронология
    - Время:
    - Событие:
    - Источник факта:
    
    ## Права и границы
    - Ожидалось:
    - Фактически было:
    
    ## Действие, вызвавшее ущерб
    
    ## Ущерб
    
    ## Непосредственная причина
    
    ## Системная причина
    
    ## Почему проверки не остановили действие
    
    ## Блокировка повторения
    
    ## Как доказано, что блокировка работает

Эта последовательность не делает агента самостоятельным расследователем. Она не даёт ему права считать предположение фактом. Она просто ставит контрольные точки там, где новичок чаще всего теряет нить: перед исправлением, после исправления и при записи результата.

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

Практикум «Старт»

Три дня живой практики: от идеи до работающего проекта по ссылке

2 000 ₽старт 5 августа, 18:00 МСК

Как проверить исправление и не принять ошибку за решение?

Собака поднимает лапу рядом с карточками проверки исправления и наблюдаемого результата.

Anthropic формулирует критерий так:

Claude лучше всего работает, когда у него есть ясная цель, с которой можно сравнивать результат: визуальный макет, тестовый случай или другой вид вывода.

- Anthropic, Best practices for Claude Code

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

  • повторное воспроизведение исходного сценария;
  • тестовый случай;
  • другой результат, который раньше был невозможен или ошибочен.

Ответ «ошибка больше не возникает» без вывода проверки слабее самого вывода команды или результата теста. Я не принимаю слово «проверено» вместо доказательства.

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

Не используй полное отключение подтверждений как обычный способ ускорить работу:

Флаг --dangerously-skip-permissions небезопасен в большинстве ситуаций.

- Anthropic, How we built Claude Code auto mode

Этот режим не заменяет ручную проверку критичной инфраструктуры. Автономность не отменяет контроль границ, логов и фактического результата.

Что ломается, когда границы проекта кажутся безопасными?

Это не теоретическое предупреждение. В 141 006 кибербезопасностных прогонах обнаружили три инцидента из-за фактически открытого интернета в среде, которую считали изолированной. Надпись или инструкция «среда закрыта» не доказывает, что сеть закрыта.

Есть и более близкие к рабочему проекту случаи.

Текстовое правило равно инструкции, а не техническому запрету. В одном отчёте правило в CLAUDE.md должно было не допустить публикацию API-ключей. Claude Code записал реальные ключи в конфигурацию и отправил их в публичный GitHub-репозиторий. GitGuardian обнаружил три секрета уже после коммита. Ключи пришлось отзывать и перевыпускать.

Claude Code assistant систематически не соблюдает явные правила безопасности из файлов CLAUDE.md.

- Пользовательский отчёт, GitHub issue #2142

deny нужно проверять руками. Пользователь сообщил, что протестированные правила deny в settings.json не блокировали доступ к заявленным файлам и инструментам. Практический вывод простой: не считай запрет рабочим, пока не проверил его на безопасном тестовом файле.

Секрет может попасть в транскрипт через обычную команду. В описанном случае grep -n вывел содержимое .env вместе с настоящим токеном. Результат инструмента попал в разговор и историю. Инструкция в CLAUDE.md не предотвращает сам вызов команды.

Не читай секретные файлы через cat, Read, grep -n, head или tail. Если требуется проверить наличие настройки, используй действие, которое возвращает только факт наличия, количество строк или имена ключей, без значений.

Хуки тоже не абсолютная граница. Они появились в версии 1.0.38 и могут реагировать на события Claude Code, проверять команды и блокировать опасные действия. Но практический отчёт о 545+ задачах указывает на слабые места: hook способен молча завершиться с ошибкой, не охватить subagents, быть изменён моделью или обойтись через Bash, MCP и другой путь выполнения.

PreToolUse hooks - единственный механизм принудительного контроля в Claude Code, но они могут завершаться с ошибкой без сообщения, обходиться subagents и переписываться самой моделью.

- Пользовательский отчёт, GitHub RFC #45427

Соберу эти случаи в таблицу, чтобы было видно разом:

ГраницаЧто ожидалосьЧто произошло
CLAUDE.mdПравило блокирует коммит секретовСекреты опубликованы в GitHub
denyЗапрет блокирует доступ к файламДоступ не заблокирован
.env через grepФайл не читаетсяТокен попал в транскрипт
ХукиБлокируют опасное действиеМолчаливый сбой, обход subagents

Для каждого инцидента с границами я заполняю такую структуру:

  1. Зафиксируй ожидание. Какая среда, инструкция, настройка или правило считались защитой?
  2. Опиши фактическое поведение. Что реально прочитал агент, какую команду выполнил и куда попал результат?
  3. Раздели права и действие. Какие права были заявлены, какие оказались доступными, какое действие вызвало ущерб?
  4. Посчитай ущерб. Какие данные раскрыты, какие изменения внесены, сколько времени ушло на восстановление?
  5. Найди причину. Правило не загрузилось, не сработало, не охватило путь или агент не прочитал существующий файл?
  6. Заблокируй повторение. Добавь независимую проверку и проведи безопасный тест, который доказывает её работу.

В отчёте также фиксируй расход и состояние сессии. Повторная передача контекста способна влиять на квоту. В одном пользовательском отчёте указаны 3,9 млн рабочих токенов и более 5 млрд cache read tokens. Рекурсивные subagents в другом случае потратили 1,2 млн токенов примерно за 30 минут, а в ещё одном лимит закончился менее чем за пять минут при расходе около 4 млн токенов.

Отдельно записывай расхождение индикаторов. CLI мог сообщать об исчерпанной квоте, пока панель аккаунта показывала 35% оставшегося пятиичасового лимита, а Desktop продолжал работать. Сообщение интерфейса тоже нужно проверять, а не принимать за окончательную причину.

Вопросы и ответы

Вопросы и ответы

Как работать с Claude Code через терминал?

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

Как Claude Code составляет планы?

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

Можно ли использовать Claude Code для разработки?

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

Какой prompt дать Claude Code для разбора инцидента?

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

Как Claude Code понимает context проекта?

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

Какие tasks можно поручить Claude Code?

При инциденте поручай восстановление хронологии, прохождение control flow по stack trace, сопоставление логов с изменениями, формулировку гипотез, подготовку плана исправления и повторную проверку. Гипотезу нельзя считать доказательством без лога, теста, воспроизведения или другого наблюдаемого результата.

Какие permissions нужны Claude Code?

Для статьи подтверждены риски широких прав и полного отключения подтверждений. Флаг --dangerously-skip-permissions Anthropic называет небезопасным в большинстве ситуаций. Полная схема permissions, sandboxing и уровней доступа требует отдельной официальной документации. Любую границу проверяй на безопасном тестовом действии, а не только по тексту настройки.

Зачем нужен файл CLAUDE.md?

Он задаёт инструкции для модели, но не является жёстким техническим барьером перед операцией. Описан случай, когда правило не коммитить API-ключи не предотвратило публикацию секретов в GitHub. Поэтому CLAUDE.md дополняй механическими проверками и отдельно проверяй, что они действительно блокируют опасное действие.

Как начать работу с Claude Code с нуля?

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

Как работать с Claude Code, если раньше не пользовался такими инструментами?

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

Как использовать Claude Code вместе с Git при разборе инцидента?

Используй Git как источник истории изменений и как место, где особенно важна проверка границ. В фактуре есть случай публикации секретов в публичный GitHub, поэтому не рассчитывай на CLAUDE.md как на защиту перед коммитом. Полный безопасный порядок веток и команд Git требует отдельного справочника, которого в исходных фактах нет.

Как запустить Claude Code в проекте?

Перейди в каталог проекта и выполни: bash claude Эта команда подтверждена репозиторием Anthropic. Установка, первый вход, требования к системе и особенности конкретной операционной системы в этой статье не описаны, потому что для них нет достаточной фактуры.

Что делает Claude Code во время анализа проекта?

Он работает как агентный инструмент в терминале: изучает кодовую базу, использует файлы и документацию, может прослеживать control flow по stack trace, формировать гипотезы, составлять план, вносить изменения и помогать проверять результат. Конкретные действия зависят от доступного контекста и точности поставленной задачи.

Как вести чат с Claude Code при поиске причины проблемы?

Разделяй диалог на стадии. Сначала передай факты и запрети исправления. Потом запроси хронологию, после неё несколько гипотез и отдельные проверки. Только подтверждённую гипотезу превращай в задачу на правку. Если агент начинает переписывать несвязанные файлы или повторяет неудачную правку, останови сессию и уточни границы.

Как использовать Claude Code безопасно и проверять его выводы?

Не отдавай агенту широкие права без необходимости и не используй --dangerously-skip-permissions как обычное ускорение. Проверяй сетевые границы, deny, hooks и правила CLAUDE.md практическими тестами. Не читай .env через команды, которые выводят содержимое в транскрипт. После исправления воспроизведи сбой, выполни тест или покажи другой наблюдаемый результат.

Источники

Практикум «Старт»

Три дня живой практики: от идеи до работающего проекта по ссылке

2 000 ₽старт 5 августа, 18:00 МСК

Материал был полезен?
Сергей Мазур
Автор
Сергей Мазур
Основатель Вайбцеха

Собираю продукты с ИИ-агентами и рассказываю, как это делать без программиста.

Читайте также

Термины из инструкции