Краткое руководство по CodeGraph¶
Шпаргалка на одной странице для повседневного использования
Основные команды¶
| Команда | Пример | Описание |
|---|---|---|
| /help | /help review | Показать справку |
| /scenarios | /scenarios security | Список сценариев |
| /select | /select 02 | Сменить сценарий |
| /stat | /stat | Показать статистику БД |
| /query | /query SELECT * FROM nodes_method LIMIT 5 | Выполнить SQL |
| /review | /review git | Проверка кода |
| /config | /config llm temperature 0.5 | Изменить настройки |
| /exit | /exit | Сохранить и выйти |
Сценарии по ролям¶
Разработчик¶
/select 01 → Онбординг "Где определена функция X?"
/select 04 → Разработка фич "Куда добавить хук?"
/select 05 → Рефакторинг "Найти мёртвый код"
/select 15 → Отладка "Проследить путь выполнения"
QA / Тестировщик¶
/select 07 → Покрытие тестами "Что не покрыто тестами?"
/select 09 → Проверка кода "Проверить эти изменения"
/select 12 → Технический долг "Оценить объём долга"
Безопасность¶
/select 02 → Аудит безопасности "Найти SQL-инъекции"
/select 08 → Соответствие стандартам "Проверить по OWASP Top 10"
/select 14 → Инцидент "Проследить вектор атаки"
/select 16 → Точки входа "Список конечных точек API"
Технический писатель¶
/select 03 → Документирование "Описать функцию X"
/select 11 → Архитектура "Объяснить структуру модуля"
Частые запросы¶
Поиск функций¶
> Где определена palloc?
> Показать вызывающие heap_insert
> Что вызывает ExecProcNode?
Анализ безопасности¶
> Найти уязвимости к SQL-инъекциям
> Проследить путь данных от пользовательского ввода до запроса
> Показать функции без валидации входных данных
Понимание кода¶
> Объясните подсистему исполнителя
> Как работает выделение памяти?
> Показать зависимости модуля X
Структурные шаблоны¶
/select 21 → Поиск шаблонов "Найти непроверённые возвращаемые значения"
Команды структурного поиска¶
# CLI-команды для работы с шаблонами
python -m src.cli patterns scan # Сканирование по всем правилам
python -m src.cli patterns search "malloc($x)" --lang c # Ad-hoc поиск
python -m src.cli patterns list # Список загруженных правил
python -m src.cli patterns stats # Статистика шаблонов
python -m src.cli patterns fix --dry-run # Предпросмотр автоисправлений
python -m src.cli patterns generate "описание" --lang c # LLM-генерация правил
Проверка кода¶
/review git # Локальные изменения
/review github 123 # GitHub PR
/review gitlab 456 # GitLab MR
/review file patch.diff # Файл изменений
# С опциями
/review git --format json --inline
SQL-запросы¶
-- Подсчёт функций
/query SELECT COUNT(*) FROM nodes_method
-- Поиск функций по имени
/query SELECT name, filename FROM nodes_method
WHERE name LIKE 'heap%' LIMIT 10
-- Поиск вызывающих функций
/query SELECT caller.name FROM edges_call e
JOIN nodes_method caller ON e.src = caller.id
WHERE e.dst = (SELECT id FROM nodes_method WHERE name='palloc')
LIMIT 5
Конфигурация¶
# Просмотр всех настроек
/config
# Изменение параметров LLM
/config llm provider gigachat
/config llm temperature 0.7
# Переменные окружения
export GIGACHAT_AUTH_KEY="..."
export OPENAI_API_KEY="..."
Быстрые рабочие процессы¶
Утренняя проверка безопасности¶
/select 02
> Найти уязвимости в последних коммитах
/review git
Начало работы нового разработчика¶
/select 01
> Какова основная архитектура?
> С какого места начать читать код?
Аудит перед релизом¶
/select 08
> Сгенерировать отчёт по соответствию OWASP
/review git --format json > audit.json
Устранение неполадок¶
| Проблема | Решение |
|---|---|
| “Нет результатов” | Проверьте/stat, убедитесь, что CPG загружена |
| Медленный отклик | Уменьшите n_ctx в настройках |
| Подключение отклонено | Проверьте GoCPG и DuckDB |
| Время ожидания API | Увеличьте timeout в настройках |
Полная документация: Руководство пользователя TUI