Перейти к содержимому

Для пользователей Gemini CLI

GEMINI.md рассказывает Gemini ваши правила.
Но не ваш код.

GEMINI.md задаёт рабочий контекст. MCP позволяет Gemini обращаться к инструментам. Maguyva — это MCP-сервер, который даёт Gemini карту вашего репозитория с возможностью запроса, так что первая правка — не догадка о структуре файлов.

Тариф Free: 3 репозитория, До 50 тыс. проиндексированных строк, без карты.

GEMINI.md — это контекст. MCP — это канал. Maguyva — это карта.

Слоистый стек

Четыре идеи. У каждой своя задача.

// контекст

GEMINI.md

Как Gemini должен вести себя в этом репозитории.

// транспорт

MCP

Как Gemini обращается к внешним инструментам и контексту.

// кодовая база

Maguyva

MCP-сервер, который возвращает обоснованные факты о репозитории.

// кто платит

Рабочие пространства, а не места

Агенты не платят за места. Смотреть тарифы

GEMINI.md — это рабочий контекст. Используйте его.

Постоянные инструкции — место для них в GEMINI.md. Это правильное место для:

  • Команд сборки, тестирования и линтинга, которые должен запускать Gemini.
  • Ограничений вида “всегда делай X / никогда не делай Y”, привязанных к директории.
  • Соглашений об именовании и предпочтений по рефакторингу.
  • Ссылок на канонические журналы решений и заметки об архитектуре.

Держите его кратким. Ограничивайте область применения. Коммитьте.

Но GEMINI.md никогда не задумывался как индекс с возможностью запроса по каждому символу, файлу и месту вызова в вашем репозитории.

Где одного GEMINI.md перестаёт хватать

Четыре сценария сбоя, по одному на карточку.

// контекст — это не индекс

Рассказать Gemini, как работать, не значит рассказать, что существует. Первая правка в незнакомом пакете — это догадка о путях файлов и именах функций. GEMINI.md не может перечислить каждый символ, да и не должен.

// документ расходится с кодом

Блок в GEMINI.md, описывающий топологию ваших очередей, верен, пока кто-то не добавит нового потребителя. Теперь источник истины — код, а документ уверенно устарел. Gemini читает не тот источник.

// переименование — это задача про граф

На вопрос «что ссылается на этот класс?» markdown-файл не ответит. Gemini либо делает grep и надеется на удачу по всему монорепозиторию, либо просит вас вставить места вызова в чат.

// окно контекста не бесплатно

Большое окно контекста — это не то же самое, что индекс с возможностью запроса. Загрузка GEMINI.md, пока Gemini не «узнает достаточно», всё равно меняет бюджет на рассуждение на объём статичного контекста.

Как три слоя сочетаются друг с другом

Пользователи Gemini уже мыслят в этой форме. Страница должна сделать это очевидным.

GEMINI.md

контекст

как ведёт себя Gemini

MCP

канал

как он обращается

Maguyva

факты о кодовой базе

что он видит

  • GEMINI.md как Gemini ведёт себя в этом репозитории.
  • MCP как Gemini обращается к инструментам и контексту. (спецификация)
  • Maguyva что видит Gemini, когда задаёт вопрос кодовой базе. Семантический, AST, графовый и текстовый поиск с путями к файлам и номерами строк.

GEMINI.md рассказывает Gemini, как работать.

Maguyva даёт Gemini то, от чего можно оттолкнуться.

Три сценария

Специфично для Gemini. Обоснованно — на основе реального графа вызовов, а не grep'а Gemini.

// workflow 01

Переименуйте общий класс, сначала найдя все зависимости

gemini> переименовать PaymentClient → BillingClient

graph::callers(PaymentClient)            12 ссылок в 7 пакетах
graph::importers(src/payments/client.ts)  9 импортёров
graph::extends(PaymentClient)             2 подкласса (RetryClient, MockClient)

 Gemini предлагает миграцию из 21 правки со списком файлов прямо в выводе.
[exit 0]

Gemini спрашивает у Maguyva о зависимых элементах перед тем, как начать редактировать. Список миграции возвращается обоснованным реальным графом, а не воспоминаниями Gemini.

// workflow 02

Найдите настоящую реализацию, а не тестовую заглушку

gemini> как normalizePhoneNumber обрабатывает E.164?

semantic::query("normalize phone E.164")
  src/util/phone.ts:88   normalizePhoneNumber()   ← реальная реализация
  test/util/phone.spec.ts:14  jest.mock(...)      ← заглушка
[exit 0]

Имена лгут. Моки заслоняют настоящий код. Maguyva ранжирует настоящую реализацию выше тестового мока.

// workflow 03

Проверьте радиус влияния перед рефакторингом

gemini> что вызывает QueueDispatcher.publish?

graph::callers(QueueDispatcher.publish)
  3 в src/billing/*    1 в src/audit/*    1 в src/notifications/*
[exit 0]

Места вызова между пакетами всплывают прямо в выводе. Дифф обоснован реальными импортёрами, а не grep'ом Gemini.

Настройка в Gemini CLI

Три шага. Тариф Free: 3 репозитория, До 50 тыс. проиндексированных строк, без карты.

  1. // step 01

    Проиндексируйте репозиторий на maguyva.ai

    Выберите тот, который хорошо знаете, чтобы можно было проверить ответы.

  2. // step 02

    Добавьте Maguyva как MCP-сервер в настройках Gemini CLI

    // ~/.gemini/settings.json
    {
      "mcpServers": {
        "maguyva": {
          "httpUrl": "https://maguyva.tools/mcp",
          "headers": {
            "Authorization": "Bearer <your-key>"
          }
        }
      }
    }
  3. // step 03

    Задайте один вопрос, ответ на который вы уже знаете

    Не начинайте сразу со всей компании. Начните с одного репозитория и одного проверяемого вопроса.