В массовом использовании ИИ-ассистентов для написания кода ключевой проблемой остаётся не качество генерации, а стоимость получения релевантного контекста. Когда задача затрагивает несколько модулей, связана с историей предыдущих PR или требует понимания внутренних инвариантов проекта, разработчику приходится либо вручную подбирать файлы и передавать их в промпт — что дорого по токенам, — либо запускать модель без контекста и тратить время на итерации.
Проект mimfort/rag_for_git предлагает третий вариант. Это открытый набор инструментов, центральным элементом которого стал скилл solve-task для Claude Code. Система заранее строит индекс репозитория: векторное хранилище на базе ParadeDB (PostgreSQL с pgvector и pg_search) для гибридного поиска (ANN по векторам + BM25 по тексту с объединением через RRF) и граф вызовов в Neo4j. Узлы графа связаны с чанками через единый идентификатор node_id = "path#fqn", что исключает необходимость в дополнительных таблицах маппинга.
Особенность подхода — индексация задач из трекера без расхода токенов LLM. Серверный ETL-скилл reviewer_sync-tasks через один MCP-тул sync_board извлекает задачи по REST, нормализует их в структуру TaskBrief и пакетно индексирует с помощью Voyage. Сам процесс не задействует языковую модель — стоимость синка фиксирована (O(1) токенов) независимо от размера доски. Инкрементальность обеспечивается через timestamp-watermark: повторный запуск обрабатывает только новые или изменённые задачи.
Индексация задач происходит без использования LLM — серверный ETL через REST с нормализацией в TaskBrief и пакетной индексацией.
При вызове solve-task с ключом задачи (например, PRI-42) система выполняет многошаговый сбор контекста: проверяет свежесть индекса, синхронизирует доску, извлекает архитектурные сводки подсистем, семантически похожие задачи из истории, релевантные файлы и символы, а при необходимости — diff из похожих PR и данные о вызывающих функциях. Всё это проходит жёсткую фильтрацию: не более трёх задач и пяти файлов/символов. Остальное отбрасывается с пометкой причины. Результат — компактный структурированный бриф в Markdown, который затем передаётся в полный цикл superpowers: brainstorming, writing-plans, subagent-driven-development, executing-plans.
На практике это означает, что разработчику больше не нужно вручную собирать контекст для каждой задачи. Система делает это автоматически, с контролируемой стоимостью и без потери релевантности. Для проектов с большим объёмом legacy-кода, где контекстные зависимости неочевидны, такой подход может значительно сократить время на внедрение ИИ-генераций и снизить счета за токены.


