Комментарии 3
У нас на Next.js похожая история, только не пять кнопок, а три хука useCredits с разной логикой инвалидации кэша, потому что агент каждый раз писал новый вместо того чтобы найти старый. Слайсы по фиче спасают, но без физической границы (index.ts с ограниченным экспортом плюс eslint-boundaries) агент всё равно рано или поздно тянет импорт из внутренностей соседнего слайса, просто потому что так короче.
Про «так короче» — подпишусь: агент всегда идёт по пути наименьшего числа токенов, поэтому граница-соглашение не работает в принципе, работает только граница-проверка. У меня это правило feature-public-api в dependency-cruiser: импорт из внутренностей соседа краснеет ещё в pre-commit, и агент сам перекладывает код. eslint-boundaries делает то же самое — важно лишь, чтобы граница была фактом статического анализа, а не пунктом в CLAUDE.md.
Полезные прикладные советы по ии-разработе frontend.

Пятая кнопка за вечер. Архитектура фронтенда под контекст LLM