Как читать эту статью #
Пункты сгруппированы по направлениям и помечены устойчивыми идентификаторами roadmap (R-*). Для каждого: что → какую пользу даст → какой ценой. Приоритеты честные: сначала закрываются разрывы «документация обещает — код не делает», затем масштабирование, затем новые возможности.
Направление 1 — доказательность и безопасность (R-SEC, R-EVID) #
| Пункт | Что даст | Цена |
|---|
R-SEC-1 Токен панели только из консоли/env (закрыть GET /api/token) | Локальные процессы не смогут молча менять настройки корпуса | малая: удалить эндпоинт, токен — startup-print |
R-SEC-4 Отказ от shell=True в запуске Joern | Убрать последний shell-вектор (сейчас — ручное квотирование) | средняя: subprocess-аргументы + регрессия Windows-путей |
| R-EVID-1 CI-гейт метрик M5/M6 на каждом PR | «100% проверяемость фактов о коде» перестаёт быть ручным прогоном — становится свойством ветки | средняя: GitHub Actions + фиксированный мини-корпус |
| R-EVID-2 Публикация bench-артефактов каждого релиза | Внешняя воспроизводимость замеров (сейчас — два опубликованных прогона) | малая |
Направление 2 — производительность (R-PERF) #
| Пункт | Что даст | Цена |
|---|
| R-PERF-1 Параллельный AST-обход (документированные «8 ядер/16 потоков» стать фактом) | Индексация больших корпусов в разы быстрее; закрытие главного расхождения «документация↔код» | высокая: воркеры, детерминизм идентификаторов (P: хеши содержимого уже детерминированы — порядок обхода не влияет) |
| R-PERF-3 Кэш эмбеддингов запросов | search с ~1 с до десятков мс на повторных запросах; агенты задают похожие запросы постоянно | малая: LRU по sha1(normalized_query)+model |
| R-PERF-4 Инкрементальная CPG-делимость | Пересборка Joern только для изменённых файлов | очень высокая: Joern не поддерживает инкрементальность — придётся вести собственные дельта-графики |
R-PKG-1 pip install ragraf[gpu] extras | GPU-путь становится устанавливаемым одной командой вместо ручной сборки torch | малая |
Направление 3 — аналитика (R-CPG) #
| Пункт | Что даст | Цена |
|---|
R-CPG-2 Продуктовые taint-операции поверх cfg_edge/dfg_edge («источник→сток») | RAGRAF из навигатора становится инструментом аудита: маршрут пользовательского ввода до SQL/echo без запуска кода. Прямой ответ на VulnGym-проблематику | высокая: операции, пределы точности (LCIP-ориентир: F1 ~55% — публиковать честно), калибровка derived-рёбер |
| R-CPG-3 CPG для Python/JS (не только php2cpg) | Межпроцедурный слой за пределами PHP | средняя: Joern поддерживает; контракт нужно перепроверить на каждом языке |
R-CORE-5 data_flow между слоями (код↔схема↔маршруты в одном срезе) | Ответ «что случится с этой таблицей, если изменить этот маршрут» одним вызовом | высокая |
Направление 4 — продукт и масштаб (R-CORE, R-PKG) #
| Пункт | Что даст | Цена |
|---|
| R-CORE-7 Мультикорпусность (несколько проектов в одной панели/одном MCP-сервере) | Один агент работает с монорепозиторием из N сервисов; панель становится диспетчерской | средняя |
| R-CORE-8 Файловый вотчер (live-guard между запросами) | Журнал расхождений пополняется без запроса-триггера; stale_warnings свежее | средняя: watchdog + дебаунс; батарея — цена простоя |
| R-I18N-2 Английская документация как первичная (RU — перевод) | Порог входа для внешних контрибьюторов | малая: перевод уже существует (docs/en) |
| R-PKG-2 PyPI-публикация | pip install ragraf вместо клона; версионирование релизов | средняя: сборка, тесты на 3.13, политика имён |
Направление 5 — доказательная база агентов (R-T) #
| Пункт | Что даст | Цена |
|---|
| R-T-1 Live A/B-протокол: одна задача, два агента (с индексом/без), автоматический подсчёт вызовов, чтений, токенов | «14 против 28/43» превращается из одного пилота в повторяемый стенд на любом корпусе заказчика — главный аргумент внедрения | средняя: обвязка протокола уже частично есть в bench/ |
| R-T-2 Профили «здоровья агента» по телеметрии (доля symbol/search против grep, stale-игнорирование) | Панель начинает оценивать не только индекс, но и дисциплину агента; регламент улучшается данными | малая на готовой usage_call |
| R-VIS-1 Визуализация графа (read-only веб-представление ревизии) | Отладка impact/slice глазами; демонстрация продукта | средняя: экспорт DOT уже тривиален; интерактив — d3/cytoscape |
Что это даст в сумме (если всё) #
Сценарий «RAGRAF v0.4»: агент в монорепозитории из нескольких сервисов задаёт вопрос «что сломается, если изменить эту колонку» и получает единый срез код→схема→маршруты с taint-путями пользовательского ввода, на графе в 50k вершин за <1 с (GPU-CSR), по ревизии, которая свежее минуты (файловый вотчер), — и всё это воспроизводимо на A/B-стенде заказчика с публикацией артефактов в CI. Это уже не «поиск по коду», а проверяемая система знаний о системе.
Чего в roadmap нет намеренно #
- Языка запросов к графу (P4 — измерено, не обсуждается).
- Облачной версии — продукт локальный по философским основаниям (секреты не покидают машину; телеметрия локальна).
- Автономного патчинга — RAGRAF отвечает, правит агент; смешение ролей ломает атрибуцию ответственности.
- Собственных эмбеддинговых моделей — мультиязычная MiniLM закрывает задачу за 240 МБ; обучение своей модели не окупится на обозримых корпусах.
Источник приоритизации: ROADMAP.md репозитория (40+ пунктов, последовательность v0.1→v0.4) и реестр дефектов (43 находки: 4 CRIT / 11 HIGH / 19 MED / 9 LOW).