code-review-graph: граф знаний для Claude Code экономит до 49× токенов
Открытый инструмент code-review-graph строит локальный граф знаний кодовой базы и снижает расход токенов в 8,2× при ревью и до 49× в монорепозиториях.
Проблема: ИИ-ассистент читает всё подряд
AI-инструменты для написания кода перечитывают весь репозиторий при каждой задаче. Типичная ситуация: Claude читает middleware, модели базы данных и вспомогательные файлы, не имеющие отношения к изменённому эндпоинту — ревью стоит 5 500 токенов вместо 800. Именно это и решает code-review-graph — открытый инструмент, вышедший в марте 2026 года.
Это локальный граф знаний для Claude Code, который строит постоянную карту кодовой базы, чтобы Claude читал только то, что важно — в 6,8× меньше токенов на ревью и до 49× на повседневных задачах.
Как это работает
Репозиторий парсится в AST (абстрактное синтаксическое дерево) с помощью Tree-sitter, сохраняется как граф из узлов (функции, классы, импорты) и рёбер (вызовы, наследование, покрытие тестами), а затем при ревью вычисляется минимальный набор файлов, которые нужно прочитать.
Когда файл меняется, граф отслеживает каждый вызывающий модуль, зависимость и тест, который может быть затронут. Это называется blast-radius analysis — анализ «радиуса поражения» изменения.
graph TD
A[Исходный код] -->|Tree-sitter парсинг| B[AST]
B -->|Извлечение узлов и рёбер| C[Граф в SQLite]
C -->|Запрос по изменению| D[Blast-radius анализ]
D -->|MCP| E[Claude Code]
E -->|Читает только нужные файлы| F[Экономия токенов]
Первоначальная сборка занимает ~10 секунд для проекта из 500 файлов. После этого граф обновляется автоматически при каждом редактировании файла и каждом git-коммите.
Результаты бенчмарков
В среднем эффективность токенов составляет 8,2× (наивный подход vs граф) — граф заменяет чтение целых исходных файлов компактным структурным контекстом, охватывающим blast-radius, цепочки зависимостей и пробелы в покрытии тестами.
Оценка проводилась на 6 реальных open-source репозиториях, всего 13 коммитов. Для каждого коммита измерялось потребление токенов при наивном подходе (Claude читает все связанные файлы) и при подходе с графом (Claude сначала запрашивает граф, читает только blast-radius).
| Репозиторий | Ср. токены (наивно) | Ср. токены (граф) | Снижение |
|---|---|---|---|
| fastapi | 4 944 | 614 | 8,1× |
| flask | 44 751 | 4 252 | 9,1× |
| gin | 21 972 | 1 153 | 16,4× |
| httpx | 12 044 | 1 728 | 6,9× |
| nextjs | 9 882 | 1 249 | 8,0× |
| express | 693 | 983 | 0,7× |
| Среднее | 8 248 | 1 163 | 8,2× |
Точность blast-radius анализа
Blast-radius анализ никогда не пропускает реально затронутый файл (100% recall). В некоторых случаях он даёт избыточные результаты — это консервативный компромисс: лучше отметить лишние файлы, чем пропустить сломанную зависимость.
Быстрый старт
pip install code-review-graph
code-review-graph install # автоопределение всех поддерживаемых платформ
code-review-graph build # парсинг кодовой базы
Команда install определяет, какие AI-инструменты установлены, записывает правильную MCP-конфигурацию для каждого и внедряет граф-ориентированные инструкции в правила платформы.
Поддерживаются платформы: Claude Code, Cursor, Codex, Kiro. Требуется Python 3.10+.
uv — тогда MCP-конфиг будет использовать uvx, что ускоряет запуск MCP-сервера и упрощает изоляцию окружения.Ключевые возможности
Инструмент предоставляет Claude несколько MCP-инструментов: анализ blast-radius, запросы о влиянии изменений, обзор архитектуры, обнаружение мёртвого кода, предпросмотр рефакторинга и пробелы в покрытии тестами.
Граф хранится в SQLite и экспонируется через MCP-инструменты и промпты. Дополнительно поддерживаются:
- Семантический поиск — опциональные векторные эмбеддинги через sentence-transformers, Google Gemini или любой OpenAI-совместимый эндпоинт
- Интерактивная визуализация — D3.js-граф с поиском и легендой сообществ
- Экспорт — GraphML (Gephi/yEd), Neo4j Cypher, Obsidian vault, SVG
- Multi-repo — регистрация нескольких репозиториев с единым поиском
Последний релиз добавил экспорт в GraphML/Cypher/Obsidian/SVG, graph diff для сравнения снимков графа во времени, токен-бенчмаркинг и memory loop — сохранение результатов Q&A в markdown для повторного встраивания в граф.
Поддержка языков
Парсер поддерживает 19 языков, включая Vue SFC, Solidity, Dart, R, Perl, Lua, а также Jupyter/Databricks-ноутбуки. Финальный список в версии 2.x расширен до 23 языков, включая Zig, PowerShell, Julia и Svelte SFC.
Контекст и значение для отрасли
«Структурный граф знаний меняет подход: вместо того чтобы читать всё в надежде найти нужное, ИИ начинает с точной карты того, что важно, и читает только это.»
В марте 2026 года разработчик Tirth Kanani опубликовал инструмент, который попал в GitHub Trending за несколько дней, а заголовок о 49× снижении токенов на монорепозитории Next.js вызвал одновременно скептицизм и широкий интерес.
Подобные инструменты — code-review-graph, Graphify и другие — отражают нарастающую тенденцию: понимание репозиториев на уровне кодовой базы остаётся сложной задачей для LLM. Решение через статический граф зависимостей дешевле и детерминированнее, чем RAG на эмбеддингах: подход не требует GPU, embedding-моделей или векторных баз данных, работает офлайн без внешних зависимостей и в отличие от RAG-систем, разбивающих код на изолированные фрагменты, сохраняет архитектурный контекст через явные рёбра зависимостей.
Исходный код доступен на GitHub под лицензией MIT.