# Cursor редагує файл. Maguyva бачить репозиторій.

Canonical source: https://maguyva.ai/uk/for-cursor

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

Cursor — це редактор. У монорепозиторії агенту все одно потрібна карта того, який файл важливий. Maguyva індексує вашу кодову базу і повертає її через MCP (семантика, AST, граф і текст), тож на «де відбувається автентифікація» ви отримуєте реальний потік автентифікації, а не сім тестових заглушок.

> Cursor редагує те, на що ви вказали. Maguyva каже агенту, на який файл вказати.

## Що робить кожен шар

Чотири частини. У кожної своя робота.

### Cursor

Місце, де ви справді пишете код.

### @-згадки + пінінг

Ручний контекст працює, поки репозиторій не стає завеликим.

### Maguyva

Автоматичне отримання фактів про кодову базу через MCP.

### Робочі простори, а не користувачі

Агенти не платять за місця. [Переглянути ціни](https://maguyva.ai/uk/pricing)

## Cursor — це редактор. Користуйтеся ним.

Проблема не в IDE. Автодоповнення табом, редагування за допомогою ШІ, багатофайлові правки та `.cursor/rules` у Cursor чудові, і ви вже користуєтеся ними для:

- Вбудованих підказок і редагування за допомогою ШІ у відкритому файлі.
- Багатофайлових правок, коли зміна локальна.
- `.cursor/rules` для конвенцій репозиторію та стильових обмежень.
- `@`-згадок, щоб підтягнути конкретний файл у контекст.

Продовжуйте так робити. Нічого з цього нікуди не зникає.

Але в реальному монорепозиторії (TypeScript із залежностями воркспейсів, Python-сервіси, змішані пакети) контекст агента ламається в ту мить, коли потрібний файл ще не потрапив у ваше поле зору.

## Ручні виправлення, які ви вже пробували, — і де вони ламаються

Чотири ручні виправлення в парі зі своїм режимом відмови. Ліворуч — що ви робите сьогодні. Праворуч — де воно ламається.

### // запіньте файли

Ви `@`-згадуєте три файли, які, на вашу думку, важливі. Cursor акуратно редагує всередині них.

### // пінінг — це здогадка

Пінінг працює, коли ви вже знаєте, які файли задіяні. Весь сенс інструментів контексту — показати файли, про які ви навіть не здогадувалися.

### // вставте фрагменти

Ви вставляєте 200 рядків з іншого пакета в чат, щоб дати агенту достатньо контексту.

### // вставлений код застаріває

Фрагмент, який ви вставили о 9 ранку, не враховує ребейз, який ваш колега влив об 11-й. Агент редагує, спираючись на примарну версію пакета.

### // напишіть документ-контекст

Ви пишете файл `.cursor/rules` або markdown про архітектуру. Сьогодні він правильний.

### // документація застаріває швидше за код

Усе, що ви пишете вручну, з часом розходиться з реальністю. Джерело істини — код. Документ, що пояснює шар черг, правильний тиждень, а потім хибний назавжди.

### // зберігайте файли правил

Ви додаєте `.cursor/rules` для найменувань, лінту, команд збірки. Чудово для поведінки.

### // правила ≠ індекс

`.cursor/rules` — правильне місце для “завжди запускай pnpm tsc -b перед комітами”. Але це не індекс, який можна опитати, для кожного символу, файлу й місця виклику у вашому монорепозиторії.

## Maguyva — це шар під усім цим

Це не заміна Cursor. Це шар контексту репозиторію, що тримається на підтримці MCP у Cursor.

- **Семантика + AST + граф + текст**: пошук за змістом, структурою, залежністю чи буквальним збігом. Кожен результат повертає шлях до файлу й номер рядка.
- **Крос-пакетний за замовчуванням**: місця виклику й імпортери в кожному пакеті монорепозиторію, а не лише у відкритому зараз.
- **Враховує гілку**: Maguyva бачить саме ту версію коду, яку редагує Cursor.
- **Доповнює, а не конкурує**: `.cursor/rules` продовжує робити свою справу. `@`-згадки продовжують робити свою. Maguyva заповнює прогалину, яку не заповнюють вони.

> Cursor редагує файл, на який ви вказали.
> Maguyva каже агенту, *на який файл вказати.*

## Три робочі процеси для монорепозиторію

Крос-пакетно, крос-мовно. Обґрунтовано реальним графом викликів, а не grep'ом Cursor.

### 01. Знайти потік автентифікації між пакетами, нічого не пінячи

```text
cursor> де в цьому монорепозиторії відбувається автентифікація?

graph::query("authentication flow")
  packages/web/src/auth/session.ts:42       middleware
  packages/api/src/auth/jwt.ts:88           token verify
  packages/shared/src/auth/types.ts:12      AuthContext
  packages/admin/src/auth/admin-only.ts:31  rbac gate

→ 4 точки входу в 4 пакетах, відсортовано за щільністю місць виклику.
[exit 0]
```

Ви не запінили жодного файлу. Ви не вставляли фрагмент. В агента є чотири важливі файли в правильному порядку — і він може зробити обґрунтовану правку.

### 02. Знайти реальну реалізацію, а не тестову заглушку

```text
cursor> як normalizePhoneNumber обробляє E.164?

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

Назви брешуть. Моки затіняють реальний код. Maguyva ранжує реальну реалізацію вище за тестовий мок у кожному пакеті.

### 03. Перевірте радіус впливу перед рефакторингом

```text
cursor> що викликає QueueDispatcher.publish у всьому монорепозиторії?

graph::callers(QueueDispatcher.publish)
  3 in packages/billing/*
  1 in packages/audit/*
  1 in packages/notifications/*
  1 in services/python-worker/*  ← крос-мовно через gRPC-стаб
[exit 0]
```

Крос-пакетно, а для поліглотного репозиторію ще й крос-мовно, місця виклику з'являються прямо в результаті. Diff обґрунтований реальними імпортерами, а не grep'ом Cursor.

## Налаштування з Cursor

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

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

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

### 02. Додайте Maguyva як MCP-сервер у налаштуваннях Cursor

`~/.cursor/mcp.json`

```json
{
  "mcpServers": {
    "maguyva": {
      "url": "https://maguyva.tools/mcp",
      "headers": {
        "Authorization": "Bearer ${env:MAGUYVA_API_KEY}"
      }
    }
  }
}
```

### 03. Поставте одне запитання, відповідь на яке вже знаєте

Не починайте одразу з усієї компанії. Почніть з одного репозиторію й одного перевірюваного запитання, як-от «що викликає `formatInvoice` у всіх пакетах?»

## Проіндексуйте один репозиторій, який ви вже добре знаєте.

Перевірте одне запитання, відповідь на яке можна підтвердити.
