Андрей Карпатов написал пост о типичных ошибках AI-агентов. Разработчик по имени Форрест прочитал его, упаковал ключевые идеи в файл CLAUDE.md длиной меньше 200 строк и выложил на GitHub. За одну неделю файл установили себе 43 000 человек.
Это не очередной хайповый промпт. Люди возвращались и писали: Claude стал работать по-другому. Быстрее. Точнее. Без лишних телодвижений.
Давайте разберём, что именно там написано и почему это работает.
Откуда взялись эти принципы
Карпатов — бывший руководитель AI в Tesla, один из основателей OpenAI. Его пост в X (ссылка) — не теория. Это наблюдения человека, который годами смотрел на то, как AI-агенты ломаются на практике. Он зафиксировал четыре системные ошибки, которые совершают почти все агенты почти всегда:
- Начинают писать код, не разобравшись в задаче.
- Усложняют там, где нужна простота.
- Трогают то, что их не просили трогать.
- Не знают, когда задача считается выполненной.
Форрест взял эти наблюдения и перевёл их на язык инструкций для 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 в сторону осторожности за счёт скорости. Для простых однострочных задач это избыточно — просто держите это в голове.
Для всего остального — особенно для работы с реальным кодом, агентными системами и многошаговыми задачами — включайте их по умолчанию.