Андрей Карпатов написал пост о типичных ошибках AI-агентов. Разработчик по имени Форрест прочитал его, упаковал ключевые идеи в файл CLAUDE.md длиной меньше 200 строк и выложил на GitHub. За одну неделю файл установили себе 43 000 человек.

Это не очередной хайповый промпт. Люди возвращались и писали: Claude стал работать по-другому. Быстрее. Точнее. Без лишних телодвижений.

Давайте разберём, что именно там написано и почему это работает.


Откуда взялись эти принципы

Карпатов — бывший руководитель AI в Tesla, один из основателей OpenAI. Его пост в X (ссылка) — не теория. Это наблюдения человека, который годами смотрел на то, как AI-агенты ломаются на практике. Он зафиксировал четыре системные ошибки, которые совершают почти все агенты почти всегда:

  1. Начинают писать код, не разобравшись в задаче.
  2. Усложняют там, где нужна простота.
  3. Трогают то, что их не просили трогать.
  4. Не знают, когда задача считается выполненной.

Форрест взял эти наблюдения и перевёл их на язык инструкций для Claude. Получился репозиторий andrej-karpathy-skills.


Четыре принципа

1. Think Before Coding — думать перед кодом

Звучит очевидно. На практике — нет.

Claude по умолчанию хочет быть полезным прямо сейчас. Если задача двусмысленная, он не остановится и не спросит. Он выберет одну из интерпретаций — обычно самую поверхностную — и поедет. Вы получите результат быстро, но не тот.

Этот принцип меняет поведение:

  • Явно формулировать предположения. Если что-то непонятно — назвать это вслух, а не додумывать молча.
  • Предлагать несколько интерпретаций задачи, а не выбирать одну без объяснений.
  • Возражать, когда есть основания. По умолчанию Claude согласится с вашим подходом и найдёт аргументы в его пользу. Принцип говорит: если есть более простое решение — скажи об этом.
  • Остановиться, если что-то непонятно. Не выдумывать, не заполнять пробелы. Спросить.

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

2. Simplicity First — простота прежде всего

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

Принцип формулирует это жёстко:

  • Никаких функций, которые не просили.
  • Никаких абстракций для кода, который используется один раз.
  • Никакой «гибкости» или «настраиваемости», которую не запрашивали.
  • Если 200 строк можно заменить 50 — переписать.

Внутренний тест, который предлагает файл: «Сказал бы опытный инженер, что это overcomplicated?» Если да — упростить.

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

3. Surgical Changes — хирургические изменения

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

Ситуация знакома: у вас работает сервис. Вы просите Claude починить один баг. Claude чинит баг — и заодно рефакторит три соседних файла, переименовывает функции, убирает «мёртвый» код. Работающие фичи перестают работать.

Принцип говорит:

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

Проверочный вопрос из файла: «Каждая изменённая строка должна напрямую следовать из запроса пользователя». Если строка не следует — она там быть не должна.

4. Goal-Driven Execution — исполнение, ориентированное на цель

Расплывчатые задачи дают расплывчатые результаты. «Исправь баг» — это не задача. «Напиши тест, который воспроизводит баг, затем сделай тест зелёным» — это задача.

Принцип предлагает переводить запросы в верифицируемые цели:

  • «Добавь валидацию» → «Напиши тесты для невалидных входных данных, затем сделай их проходящими»
  • «Исправь баг» → «Напиши тест, который его воспроизводит, затем сделай тест зелёным»
  • «Отрефактори X» → «Убедись, что тесты проходят до и после»

Для многошаговых задач — явный план перед началом работы:

1. [Шаг] → проверка: [что именно проверяем]
2. [Шаг] → проверка: [что именно проверяем]
3. [Шаг] → проверка: [что именно проверяем]

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


Тест на практике: с файлом и без

Никита Велc (автор исходного видео) провёл чистый эксперимент: взял один проект, один промпт со списком багов и запустил Claude дважды — с файлом Карпатова и без.

Без файла:

Claude потратил 10% пятичасового лимита токенов. Проанализировал всю кодовую базу. Исправил три из четырёх багов, но смена дня и ночи при запуске не работала — баг починен только на бумаге, в реальности функция сломана.

С файлом:

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

Разница объясняется просто. Без файла Claude читает всё подряд, на всякий случай. С файлом — только то, что нужно для конкретной задачи. Без файла он переписывает код, который его не просили трогать. С файлом — нет.

На простой задаче разрыв заметен. На сложной — пропасть.


Как установить

Файл лежит здесь:

https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md

Если CLAUDE.md в проекте ещё нет

Скопируйте файл в корень проекта. Готово.

Если CLAUDE.md уже есть

Не давайте Claude ссылку на GitHub напрямую — он перепишет ваш файл и сотрёт всё, что вы туда добавляли.

Вместо этого используйте промпт для безопасной интеграции:

Я даю тебе набор правил для кодинга под названием Karpathy Skills. Скачай файл по ссылке:
https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md

Это CLAUDE.md с четырьмя принципами:
- Think Before Coding (думай перед тем, как писать код)
- Simplicity First (простота прежде всего)
- Surgical Changes (точечные изменения)
- Goal-Driven Execution (исполнение, ориентированное на цель)

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

Предложи, как лучше всего интегрировать это в нашу текущую настройку.

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


Что происходит после установки

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

Это не магия — это просто правила, которых у Claude не было по умолчанию. Теперь есть.


Важное уточнение

Принципы Карпатова написаны с пометкой: «Biased toward caution over speed. For trivial tasks, use judgment». То есть они специально сдвигают Claude в сторону осторожности за счёт скорости. Для простых однострочных задач это избыточно — просто держите это в голове.

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