Мой CLAUDE.md не менялся ни разу с момента генерации.
При этом память по проекту я веду честно. Что и как сделано, где какие грабли, что лежит в бэклоге. То есть дело не в лени: один файл я трогаю постоянно, а второй не открывал вообще.
Серёжа накидал мне в комменты целую инструкцию по хранению знаний в проекте, и вот там до меня дошло, в чём прикол разделения. Знания живут разное время, и валить их в одну кучу бессмысленно.
CLAUDE.md это правила, они живут месяцами. ADR в docs/decisions это решения, эти вообще навсегда. Память это состояние, у неё срок жизни дни.
Я вёл третье и не трогал первое. Оказалось, это не разгильдяйство, а ровно то, как оно и должно работать.
Дальше по шагам, если ты только поставил агента на проект.
Прожимаешь /init в корне. Он читает кодовую базу и собирает первый CLAUDE.md сам: команды сборки, как гонять тесты, какие конвенции нашёл.
Открываешь и вычищаешь. Этот шаг пропускают все. /init любит написать то, что и так видно из package.json. Такое удаляем, агент прочитает сам. Оставляем только то, до чего он не догадается: почему у нас вот так и где закопаны грабли.
И больше не трогаешь. Не надо садиться и писать идеальный документ на 300 строк, его никто не соблюдёт, включая агента.
Дописываешь по триггеру. Триггера ровно два: агент второй раз наступил на те же грабли, или ты второй раз объясняешь ему одно и то же. Вот тогда говоришь «добавь это в CLAUDE.md» и живёшь дальше.
Решения складываешь отдельно, в docs/decisions. Один файл на одно решение: контекст, что выбрали, чем пожертвовали. Старые не правим, помечаем заменёнными. Через полгода захочешь всё переделать и не вспомнишь, почему сделали именно так. Состояние не ведёшь вообще. Агент умеет писать заметки себе сам. Загляни разок и посмотри, что он там уже понаписал (я вот до сих пор не смотрел).
Личное кладёшь в CLAUDE.local.md и сразу в .gitignore. Свои урлы, свои тестовые данные, чтобы не тащить это в общую репу.
И держи файл коротким. Чем он длиннее, тем больше жрёт контекст и тем хуже соблюдается. Себе задачу поставил: открыть CLAUDE.md и наклодить туда всё, что я уже третий раз объясняю агенту руками.
А у тебя что в CLAUDE.md? Живой файл или памятник моменту, когда ты прожал /init?