Как подчищать за агентом
Если кто не в курсе, то существует такой инструмент — knip (TypeScript). Он позволяет найти в вашем проекте неиспользуемые части кода. Работает плоховастенько (false positive) и довольно медленно, но если учитывать эти минусы, то это довольно неплохой инструмент для того, чтобы отлавливать накопившийся мусор после работы вашего агента.
Что важно помнить перед использованием этого инструмента:
- knip может возвращать false positive — т. е. некоторые части кода он может пометить как неиспользуемые, но на самом деле это не так.
- важно "сохраниться" коммитом перед началом такой операции
Как начать использовать с агентом (любым, не только Claude Code):
▪️ Иметь в package.json команду knip, а так же команду type-check для проверки, что типы TS сходятся
▪️ Рассказать агенту, что у нас есть команды knip и type-check и мы хотим удалить ненужный код. Агенты уже знают что такое knip, и что он часто false positive
▪️ В конце работы агента, проверить что всё ок
Мой опыт
Я сейчас провел чистку интерфейсов в одном проекте и сэкономил около 400 loc ))
Я знаю что у меня есть штук 5 файлов с интерфейсами (zod schemas, TS types), где очень много неиспользуемых типов и схем.
Сначала, я попросил Claude Code просто запустить эту команду
Спустя некоторое время я заметил, что ему очень тяжело — после удаления кусков кода команда type-check возвращает ошибки и агент ходит кругами.
Ок, значит, надо декомпозировать задачу
▪️ Попросил агента (Claude Code) запустить команду knip ещё раз, оценить результат и изменения в каждом файле делегировать одному субагенту
▪️ Запустить таким образом в параллель 3 субагента
▪️ Сделал то же самое ещё 3 раза и обработал все нужные файлы. -
А какие похожие инструменты используете вы?
#ai_coding@the_ai_architect
✔️ Тимур Хахалев про AI Coding, подписывайтесь!
Если кто не в курсе, то существует такой инструмент — knip (TypeScript). Он позволяет найти в вашем проекте неиспользуемые части кода. Работает плоховастенько (false positive) и довольно медленно, но если учитывать эти минусы, то это довольно неплохой инструмент для того, чтобы отлавливать накопившийся мусор после работы вашего агента.
Что важно помнить перед использованием этого инструмента:
- knip может возвращать false positive — т. е. некоторые части кода он может пометить как неиспользуемые, но на самом деле это не так.
- важно "сохраниться" коммитом перед началом такой операции
Как начать использовать с агентом (любым, не только Claude Code):
▪️ Иметь в package.json команду knip, а так же команду type-check для проверки, что типы TS сходятся
▪️ Рассказать агенту, что у нас есть команды knip и type-check и мы хотим удалить ненужный код. Агенты уже знают что такое knip, и что он часто false positive
▪️ В конце работы агента, проверить что всё ок
Мой опыт
Я сейчас провел чистку интерфейсов в одном проекте и сэкономил около 400 loc ))
Я знаю что у меня есть штук 5 файлов с интерфейсами (zod schemas, TS types), где очень много неиспользуемых типов и схем.
Сначала, я попросил Claude Code просто запустить эту команду
pnpm knip | grep "$mask" и удалить неиспользуемые типы. Спустя некоторое время я заметил, что ему очень тяжело — после удаления кусков кода команда type-check возвращает ошибки и агент ходит кругами.
Ок, значит, надо декомпозировать задачу
▪️ Попросил агента (Claude Code) запустить команду knip ещё раз, оценить результат и изменения в каждом файле делегировать одному субагенту
▪️ Запустить таким образом в параллель 3 субагента
▪️ Сделал то же самое ещё 3 раза и обработал все нужные файлы. -
type-check сошёлся. Успех!А какие похожие инструменты используете вы?
#ai_coding@the_ai_architect