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

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

Copilot начинает каждую сессию вслепую.

Пользовательские инструкции сообщают Copilot, как себя вести. Они не сообщают, что находится в вашем репозитории. Maguyva индексирует кодовую базу и возвращает её через MCP, чтобы GitHub Copilot CLI редактировал так, будто уже прочитал код.

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

Используйте инструкции для поведения. Используйте Maguyva для актуальных фактов о кодовой базе.

Многоуровневый стек

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

// соглашение

copilot-instructions.md

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

// транспорт

MCP

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

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

Maguyva

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

// кто платит

За пространство, не за пользователя

За каждого агента не взимается отдельная плата. Смотреть тарифы

Пользовательские инструкции — это рабочее соглашение. Используйте их.

# .github/copilot-instructions.md
- Отдавайте предпочтение существующим границам модулей.
- Запускайте тестовую команду репозитория перед тем, как предложить merge.
- Не выдумывайте пути к файлам. Спрашивайте, прежде чем создавать новый пакет.

Постоянные инструкции должны находиться в .github/copilot-instructions.md. Это подходящее место для:

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

Этот файл никогда не был доступным для запросов индексом репозитория. Он говорит Copilot, как работать. Он не говорит, что там есть.

Где пользовательские инструкции перестают работать в большом масштабе

Четыре режима сбоя, которые Copilot не может исправить с помощью одного файла markdown.

// инструкции — это не индекс

Telling Copilot how to behave does not tell it which class owns parseConfig, or which package actually implements the public API. Первое изменение в незнакомом дереве — это лишь догадка о структуре файлов.

// документы устаревают, код — нет

Блок инструкций, описывающий поток аутентификации прошлого квартала, становится явно неверным в тот день, когда кто-то разделяет хранилище сессий. Copilot will prefer the file you committed over the code that shipped.

// зависимости не описаны в markdown

“Что импортирует это?” is a graph question. Инструкции не могут перечислить каждого вызывающего, да вы бы этого и не хотели.

// у контекстных окон есть бюджет

Втискивание большего объёма репозитория в инструкции обменивает токены рассуждения на устаревший снимок. После нескольких КБ вы платите за худшую карту.

Maguyva как дополнительный слой

Copilot уже мыслит в терминах инструкций и инструментов.

copilot-instructions.md

соглашение

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

MCP

канал

как он получает доступ

Maguyva

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

что он видит

  • Доступная для запросов карта репозитория предоставляется через MCP как удалённый streamable-HTTP-сервер.
  • 11 инструментов, ориентированных на клиента в семантическом, структурном (AST), графовом и текстовом поиске, а также символы, зависимые и получение файлов.
  • Ранжированные результаты с путями к файлам и номерами строк по более чем 284 языкам и текстовым технологиям.
  • Одна конфигурация Одно и то же рабочее пространство отвечает в Copilot, Claude Code, Cursor, Codex и любом другом MCP-совместимом клиенте.

Пользовательские инструкции сообщают Copilot, как себя вести.

Maguyva даёт Copilot доступную для запросов карту кода.

Три рабочих процесса

Спросите карту, прежде чем принять diff.

// workflow 01

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

copilot> как normalizePhoneNumber обрабатывает формат E.164?

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

→ Copilot открывает реализацию, а не мок.
[exit 0]

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

// workflow 02

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

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

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

→ diff основан на реальных импортёрах.
[exit 0]

Межпакетные точки вызова отображаются прямо в ответе. diff основан на реальных импортёрах, а не на grep Copilot.

// workflow 03

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

copilot> rename PaymentClient → BillingClient

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

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

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

Настройка в GitHub Copilot CLI

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

  1. // step 01

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

    Выберите тот, который вы уже знаете, чтобы вы могли оценить ответы. Зарегистрируйтесь бесплатно, подключите GitHub, дождитесь индексации.

  2. // step 02

    Добавьте Maguyva как удалённый MCP-сервер в Copilot

    copilot mcp add --transport http --header "Authorization: Bearer mgv_xxxx" maguyva https://maguyva.tools/mcp

    ~/.copilot/mcp-config.json

    {
      "mcpServers": {
        "maguyva": {
          "type": "http",
          "url": "https://maguyva.tools/mcp",
          "headers": {
            "Authorization": "Bearer mgv_xxxx"
          }
        }
      }
    }
  3. // step 03

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

    Не начинайте со всей компании. Задайте один вопрос, ответ на который вы уже знаете, а затем откройте указанный файл.