Обновить
2
-0.2

Пользователь

Отправить сообщение

В продолжении поста "Как я передаю структуру проекта при работе с AI-агентами"

Там описал утилиту sumr, которая саммаризирует файлы проекта через LLM и выдаёт дерево с однострочными описаниями. Коротко: запускаешь sumr в корне — и она выдает структуру папок и файлов с кратким описанием каждого элемента. Это помогает AI-агенту быстро понять, что где находится, без необходимости читать весь код.

Что добавил с тех пор:

Теперь инструмент держит кэш у себя и не трогает ваш проект.

Добавил watch mode. Достаточно запустить sumr watch или sumr watch --detach на папке с проектом — и утилита начинает следить за изменениями. Появился новый файл или изменился существующий — саммари обновляется автоматически. Не нужно каждый раз вручную перезапускать. Запустил один раз в фоне и забыл.

Ещё добавил два флага: -p для указания конкретной папки и -d для ограничения глубины дерева, как tree -L. Их можно комбинировать:

sumr -p ./src           # начать с конкретной папки
sumr -d 2               # показать только 2 уровня глубины (как tree -L 2)
sumr -p ./src -d 1      # папки верхнего уровня с саммари

После запуска watch в инструкцию CLAUDE.md добавил рекомендацию:

* Всегда начинай ЛЮБУЮ задачу с команды 'sumr -p ./... -d ...' для получения общей структуры проекта и понимания, где что находится.
Вот примеры использования команды sumr:
sumr -p ./src           # начать с конкретной папки
sumr -d 2               # показать только 2 уровня глубины (как tree -L 2)
sumr -p ./src -d 1      # папки верхнего уровня с саммари

И это действительно работает на моих проектах - буквально 1 read корня - 2 read подпапки - старт выполнения задачи :)

Установить последнюю версию:

npm i summariser@1.0.1 -g

Репозиторий: https://github.com/BuddaArt/Summariser

Теги:
-2
Комментарии0

Как я передаю структуру проекта при работе с AI-агентами

Если вы работаете с AI-агентами для написания или ревью кода, то знаете эту боль: агент не знает ваш проект. Каждый новый чат — с нуля. Агент начинает читать, читать, читать... И часто читает то что вообще не нужно. Чтобы он хоть что-то понял, нужно дать контекст.

Агент видит список файлов, но не понимает, что в них без прочтения всего файла.
Это не всегда требуется - для мелких задач часто нужно работать с несколькими файлами и в целов читать нужно срез проекта а не проверять все

Я написал небольшую CLI-утилиту для саммаризации файлов в проекте через LLM.

Запускаешь sumr в корне проекта — и получаешь дерево файлов, где у каждого файла есть однострочное описание от LLM:

src/
├── cli.ts          Entry point, Commander.js commands and orchestration
├── scanner.ts      Recursive file walker with regex include/exclude filters
├── summarizer.ts   OpenAI-compatible API pool with concurrency control
└── renderer.ts     Terminal tree output with chalk coloring

Добавляешь агенту инструкцию начинать задачи с этой команды.

Внутри утилита рекурсивно обходит директорию, фильтрует файлы по настраиваемым regex-паттернам, потом отправляет каждый файл в LLM с просьбой дать однострочное описание. Запросы идут параллельно, результаты кэшируются в комментарии в файле — при повторном запуске уже обработанные файлы пропускаются.

Инструмент совместим с любым OpenAI-совместимым API. Можно подключить LM Studio или Ollama - справляются мелкие вроде новых Qwen 3.5 0.5b, 1.5b, 3b.

Ещё начал делать режим паттернов без LLM — извлечение комментариев и сигнатур по regex. Пока не уверен, нужно ли это кому-то.

Первый запуск:

npm i summariser -g
sumr config init

Далее в папке проекта:

sumr

Если добавили новые файлы sumr обработает их а кэш не тронет

Для очистки кэша:

sumr clear

Для обновления кэша:

sumr rescan

Я добавил такую инструкцию в CLAUDE.MD и он буквально сразу начинает с тех файлов которые нужны.

* Всегда начинай ЛЮБУЮ задачу с команды 'sumr' для получения общей структуры проекта и понимания, где что находится.

Хотя вопрос экономии конечно открытый - тут по разному бывает экономит прям нормально не читая весь проект ради вычленения 1-го модуля, а бывает работает на уровне обычного regex-поиска. Но результат лично мной ощущается!

Для саммари использую новый qwen 3.5 0.8b - мелкая моделька в lm studio

Если этот подход будет интересен и имеет смысл - могу поразвивать утилиту или принять любого кому интересно развить. Возможно что то можно доработать чтобы это было удобнее

Много времени на это не тратил любую обратную связь приму по возможности )

Репозиторий: https://github.com/BuddaArt/Summariser

Теги:
0
Комментарии0

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность