工具介绍
Вдохновленный карпатией Claude Code Guidelines
Ознакомьтесь с моим новым проектом Multica — платформой с открытым исходным кодом для запуска и управления агентами кодирования с навыками многоразового использования.
>
Следуйте за мной по X: https://x.com/jiayuan jy
Один файл «CLAUDE.md» для улучшения поведения кода Клода, полученный из наблюдений Андрея Карпати по ошибкам кодирования LLM.
Английский | 中
Проблемы
Из сообщения Андрея:
Модели делают неправильные предположения от вашего имени и просто работают вместе с ними, не проверяя. Они не справляются со своей путаницей, не ищут разъяснений, не выявляют несоответствий, не предлагают компромиссы, не отступают, когда они должны».
«Они действительно любят усложнять код и API, абстрагироваться от вздутия, не очищать мертвый код... внедрять раздутую конструкцию более 1000 строк, когда это сделают 100».
Они все еще иногда меняют / удаляют комментарии и код, которые они недостаточно понимают как побочные эффекты, даже если они ортогональны задаче.
Решение
Четыре принципа в одном файле, которые непосредственно решают эти проблемы:
Принцип | Адреса |
-----------------------------
**Подумайте перед кодированием** | Неправильные предположения, скрытая путаница, недостающие компромиссы
**Простота первая** | Перекомплексация, раздутые абстракции |
** Хирургические изменения** | Ортогональные правки, касаясь кода вы не должны
** Целеустремленное исполнение** | Использование тестовых, проверяемых критериев успеха
Четыре принципа в деталях
1 Думайте перед кодированием
** Не думайте. Не скрывайте путаницы. Поверхностные компромиссы.**
LLM часто молча выбирают интерпретацию и работают с ней. Этот принцип заставляет явно рассуждать:
-**Государственные предположения явно** - Если вы не уверены, спросите, а не угадайте
**Множественные интерпретации** — не стоит молчать, когда существует двусмысленность.
- **Нажмите назад, когда это оправдано** Если существует более простой подход, скажите:
** Прекратите путать ** — Назовите то, что неясно, и попросите разъяснения
2.Простота прежде всего
Минимальный код, который решает проблему. Ничего спекулятивного.
Борьба с тенденцией к чрезмерной инженерии:
Никаких признаков, кроме того, что было спрошено.
Отсутствие абстракций для одноразового кода
- Отсутствие "гибкости" или "конфигурируемости", которые не были запрошены
Без ошибок для невозможных сценариев
Если 200 строк может быть 50, перепишите это.
** Тест: ** Старший инженер скажет, что это слишком сложно? Если да, то упростить.
3. Хирургические изменения
** Прикоснитесь только к тому, что вам нужно. Очистите только свой собственный бардак.
При редактировании существующего кода:
Не «улучшайте» смежный код, комментарии или форматирование
- Не переделывайте вещи, которые не сломаны
Сопоставьте существующий стиль, даже если вы сделаете это по-другому.
Если вы заметили несвязанный мертвый код, укажите его - не удаляйте его
Когда твои изменения создают сирот:
Удалить импорт / переменные / функции, которые ВАШИ изменения сделали неиспользованными
- Не удаляйте ранее существовавший мертвый код, если вас не попросят
** Тест: ** Каждая измененная строка должна быть непосредственно связана с запросом пользователя.
4. Целенаправленная казнь
** Определение критериев успеха. Петля до проверки.**
Преобразование императивных задач в проверяемые цели:
Вместо... трансформироваться в...
------------------------------------------
| «Добавить валидацию» | «Написать тесты на недействительные входы, затем заставить их пройти» |
| «Исправить ошибку» | «Написать тест, который воспроизводит его, затем заставить его пройти» |
| «Рефактор Х» | «Обеспечить прохождение тестов до и после» |
Для многоэтапных задач изложите краткий план:
Сильные критерии успеха позволяют LLM-петле работать независимо. Слабые критерии («заставьте его работать») требуют постоянного уточнения.
устанавливать
**Вариант A: плагин Claude Code (рекомендуется)**
В Claude Code сначала добавьте маркетплейс:
Затем установите плагин:
Это устанавливает рекомендации в качестве плагина Claude Code, делая навык доступным во всех ваших проектах.
** Вариант B: CLAUDE.md (пер-проект)**
Новый проект:
Существующий проект (приложение):
Использование Cursor
Этот репозиторий включает в себя обязательное правило проекта Cursor ('.cursor/rules/karpathy-guidelines.mdc'), поэтому те же рекомендации применяются при открытии проекта в Cursor. См. **CURSOR.md** для настройки, используя правило в других проектах, и как это относится к коду Клода.
Ключевое понимание
От Андрея:
LLM исключительно хороши в петле, пока они не достигают конкретных целей. Не говорите ему, что делать, дайте ему критерии успеха и смотрите, как он идет».
Принцип «исполнения, движимого целями» отражает это: преобразовать императивные инструкции в декларативные цели с помощью циклов проверки.
Как узнать, что это работает
Эти рекомендации работают, если вы видите:
** Небольшие изменения