MISTAKES.md и Claude Code: как превратить повторную ошибку в правило
Как вести журнал MISTAKES.md для Claude Code: фиксация сбоев, изоляция секретов, порог повторяемости и превращение ошибок в проектные правила и тесты.
Когда вы работаете с Claude Code в сложном проекте, агент неизбежно сталкивается с неочевидными ограничениями окружения: устаревшими типами, скрытыми зависимостями или спецификой сборщика. Если каждый раз исправлять ошибку заново в диалоге, тратится контекст и время. Но попытка скормить агенту многостраничный лог сессии или надеяться на «память модели» приводит к шуму и потере фокуса.
Рабочее решение — вести компактный файл MISTAKES.md в корне репозитория. В нём фиксируются только повторяемые сбои, проверенные причины и правила предотвращения, которые затем переходят в проектные тесты и конфигурацию.
1. Отличие MISTAKES.md от лога сессии
Не путайте журнал ошибок с дампом терминала:
MISTAKES.md должен оставаться лаконичным, чтобы агент мог прочесть его в начале сессии без перегрузки контекстного окна.
2. Структура записи об ошибке
Каждая запись состоит из четырёх обязательных полей:
- Факт (Incident): что именно сломалось и при каких условиях (код ошибки, команда).
- Влияние (Impact): к чему это привело (остановка сборки, порча миграции).
- Причина (Root Cause): подтверждённый источник проблемы. Если точная причина ещё не доказана, она явно маркируется как
[Гипотеза]. - Предотвращение (Prevention): конкретное действие, исключающее рецидив.
Пример записи
ERR-014: Падение миграции PostgreSQL при DROP COLUMN без CASCADE
- Факт: Claude Code выполнил
ALTER TABLE orders DROP COLUMN customer_ref;в migration 0042. - Влияние: Сбой деплоя в staging из-за зависимого view
v_active_orders. - Причина: В проекте используются представления поверх базовых таблиц, требующие каскадного обновления или предварительного пересоздания view.
- Предотвращение: Все DDL-миграции с удалением колонок должны проверять зависимые представления через
pg_dependперед выполнением.
3. Критерии перехода: из записи в правило или тест
Не каждая разовая опечатка заслуживает постоянной строчки в правилах. Превращайте запись в автоматизированный барьер по следующей схеме:
- Первый случай: добавляем короткую запись в
MISTAKES.md. - Второй случай (рецидив): если ошибку можно поймать механически, пишем linter-правило или автотест. Это надёжнее текстовых инструкций.
- Если механический контроль невозможен: формулируем негативное правило в
CLAUDE.md(например: «Никогда не запускать jest без флага --runInBand в CI»). - Архивация: как только внедрён тест или hook, запись из активного
MISTAKES.mdудаляется, чтобы файл не разрастался.
4. Проверка на следующей задаче
Чтобы убедиться, что правило работает:
- Запустите новую чистую сессию Claude Code.
- Дайте агенту схожую задачу, провоцирующую ранее зафиксированную ошибку.
- Проверьте, обращается ли агент к инструкциям и соблюдает ли запрет.
- Если агент снова нарушает правило, ужесточите формулировку в
CLAUDE.mdили сделайте проверку обязательным pre-commit hook.
Такой цикл обратной связи превращает случайные сбои в надёжный каркас инженерных стандартов проекта.
Оплата и пополнение баланса
Пополнение баланса и оплата API осуществляются в личном кабинете BetterToken. Платформа поддерживает удобные способы оплаты, мгновенное зачисление средств и единый баланс для всех доступных моделей.
Пример числового расчёта и тарифы
По состоянию на 15 августа 2026 года в каталоге цен BetterToken базовые ставки составляют:
- Вход: $3.00 за 1M токенов;
- Выход: $15.00 за 1M токенов;
- Чтение из кэша (cache read): $0.30 за 1M токенов.
Для типового запроса на 100 000 входных и 10 000 выходных токенов без кэша итоговая стоимость составит: 0.1 × $3.00 + 0.01 × $15.00 = $0.45.