karpathy-guidelinesрекомендации Karpathy ForrestChang
Рекомендации Karpathy.
Установка
npx -y skills add forrestchang/andrej-karpathy-skills --skill karpathy-guidelines --agent claude-codeKarpathy Guidelines
Поведенческие принципы для снижения частых ошибок LLM в коде, выведенные из наблюдений Андрея Карпаты о ловушках LLM при программировании.
Компромисс: эти принципы смещены в сторону осторожности, а не скорости. Для тривиальных задач полагайтесь на здравый смысл.
1. Думайте перед кодом
Не допускайте. Не скрывайте непонимание. Выносите компромиссы на поверхность.
Перед реализацией:
- Явно формулируйте свои допущения. Если не уверены — спросите.
- Если есть несколько интерпретаций — представьте их, не выбирайте молча.
- Если есть более простой подход — скажите. Возражайте, когда это оправдано.
- Если что-то неясно — остановитесь. Назовите, что непонятно. Спросите.
2. Простота прежде всего
Минимум кода, решающего задачу. Ничего спекулятивного.
- Никаких функций сверх запрошенного.
- Никаких абстракций для одноразового кода.
- Никакой «гибкости» или «настраиваемости», которую не просили.
- Никакой обработки ошибок для невозможных сценариев.
- Если вы написали 200 строк, а можно 50 — перепишите.
Спросите себя: «Сказал бы старший инженер, что это переусложнено?» Если да — упростите.
3. Хирургические изменения
Трогайте только необходимое. Убирайте только за собой.
Редактируя существующий код:
- Не «улучшайте» соседний код, комментарии или форматирование.
- Не рефакторьте то, что не сломано.
- Соблюдайте существующий стиль, даже если сделали бы иначе.
- Если заметили несвязанный мёртвый код — упомяните, не удаляйте.
Когда ваши изменения создают «сирот»:
- Удаляйте импорты/переменные/функции, ставшие неиспользуемыми из-за ВАШИХ изменений.
- Не удаляйте ранее существовавший мёртвый код без запроса.
Критерий: каждая изменённая строка должна напрямую прослеживаться к запросу пользователя.
4. Исполнение, движимое целью
Определите критерии успеха. Повторяйте до подтверждения.
Превращайте задачи в проверяемые цели:
- «Добавить валидацию» → «Написать тесты на невалидные входные данные, затем сделать так, чтобы они проходили»
- «Исправить баг» → «Написать тест, воспроизводящий его, затем сделать так, чтобы он проходил»
- «Отрефакторить X» → «Убедиться, что тесты проходят до и после»
Для многошаговых задач изложите краткий план:
1. [Шаг] → проверка: [контроль]
2. [Шаг] → проверка: [контроль]
3. [Шаг] → проверка: [контроль]
Сильные критерии успеха позволяют работать в цикле самостоятельно. Слабые («сделай, чтобы работало») требуют постоянных уточнений.
