Перейти до вмісту

Для користувачів Windsurf

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

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

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

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

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

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

// редактор

Windsurf

Місце, де ви й Cascade справді працюєте.

// ручний контекст

@-згадки + .windsurfrules

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

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

Maguyva

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

// хто платить

Робочі середовища, а не місця

Агенти не платять за місця. Переглянути ціни

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

Проблема не в IDE. Cascade, автодоповнення табом, багатофайлові правки та .windsurfrules чудові, і ви вже користуєтеся ними для:

  • Вбудованих підказок і правок Cascade у відкритому файлі.
  • Багатофайлових правок, коли зміна локальна.
  • .windsurfrules для конвенцій репозиторію та стильових обмежень.
  • @-згадок, щоб підтягнути конкретний файл у контекст.

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

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

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

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

// the fix

// згадайте файли

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

// where it breaks

// згадка — це здогадка

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

// the fix

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

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

// where it breaks

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

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

// the fix

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

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

// where it breaks

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

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

// the fix

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

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

// where it breaks

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

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

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

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

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

Cascade редагує файл, на який ви вказали.

Maguyva каже агенту, на який файл вказати.

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

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

// workflow 01

Знайти потік автентифікації між пакетами, нічого не згадуючи

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

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]

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

// workflow 02

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

cascade> як 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 ранжує реальну реалізацію вище за тестовий мок у кожному пакеті.

// workflow 03

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

cascade> що викликає 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'ом Cascade.

Налаштування з Windsurf

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

  1. // step 01

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

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

  2. // step 02

    Додайте Maguyva як MCP-сервер у Windsurf

    // ~/.codeium/windsurf/mcp_config.json
    {
      "mcpServers": {
        "maguyva": {
          "serverUrl": "https://maguyva.tools/mcp",
          "headers": {
            "Authorization": "Bearer <your-key>"
          }
        }
      }
    }
  3. // step 03

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

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