Я нашёл 4 бага в собственном инструменте, прогнав его на самом себе — опыт запуска open source проекта

Последние несколько месяцев я строил Sverklo — локальный MCP-сервер для AI-редакторов кода (Claude Code, Cursor, Windsurf). Его задача — превратить AI-ассистента из «глуповатого копирайтера» в инженера, который понимает контекст всей кодовой базы.

Я нашёл 4 бага в собственном инструменте, прогнав его на самом себе — опыт запуска open source проекта

Что умеет Sverklo:

  • Семантический поиск: находит код по смыслу, а не только по ключевым словам.
  • Граф зависимостей: понимает, как связаны модули.
  • Анализ влияния: предсказывает, что отвалится при рефакторинге.
  • Ревью PR: оценивает риски изменений до того, как они попадут в мастер.

Главная фишка: Всё работает локально. Никакой отправки кода в облако сторонним сервисам, только вы и ваша IDE. Лицензия — MIT.

Dogfooding в чистом виде

Перед релизом я решил прогнать инструмент на его собственной кодовой базе. Гипотеза была простая: если Sverklo хорош в навигации по чужому коду, он обязан найти «грязь» в моем.

За 3 сессии я нашел 4 реальных бага, которые юнит-тесты благополучно проспали:

  1. Слепота к повторам: Анализ влияния молча терял повторные вызовы. Если функция вызывалась дважды в одном методе, в отчете она мелькала лишь раз.
  2. Галлюцинации поиска: Искал ссылки на символ embed, а получил 48 совпадений по подстроке (embeddingStore, EmbeddingBatch...) вместо 5 реальных вызовов.
  3. Немой отказ: Lookup возвращал «No results» и на неправильное имя параметра, и на слишком большой чанк. Без объяснения причин, просто тишина.
  4. Парсер-ленивец: Парсер TS/JS просто игнорировал все функции после первой, если в файле было несколько top-level определений.

Все баги уже исправлены и покрыты регрессионными тестами. Полный лог этих сессий без купюр я выложил на GitHub — там интересно посмотреть, как AI «рассуждает» над кодом.

Что под капотом?

Технически это «комбайн», собранный для скорости и приватности:

Я нашёл 4 бага в собственном инструменте, прогнав его на самом себе — опыт запуска open source проекта
  • Гибридный поиск: классический BM25 + векторные ONNX-эмбеддинги (all-MiniLM-L6-v2).
  • Графы: PageRank по графу зависимостей для приоритизации важных кусков кода.
  • Хранение: 20 инструментов через MCP-протокол, данные живут в одном SQLite-файле прямо у вас на машине.

Зачем я это сделал?

Мне не хватало инструмента, который не просто дописывает функции, а помогает «прочитать» проект на 100к+ строк.

Сегодня Sverklo вышел на Product Hunt, и мне очень нужен ваш фидбек. Попробуйте запустить его на своем проекте — особенно интересно, если у вас что-то сломается (баг-репорты бесценны).

Буду рад ответить на вопросы в комментариях. Как считаете, есть ли будущее у локальных MCP-инструментов или облачные решения всё равно победят за счет мощностей?

Начать дискуссию