Spring til indhold

Til Windsurf-brugere

Windsurf retter filen.
Maguyva ser repoet.

Windsurf er editoren, og Cascade er agenten. I et monorepo har agenten stadig brug for et kort over, hvilken fil der betyder noget. Maguyva indekserer din kodebase og leverer den tilbage over MCP (semantisk, AST, graf og tekst), så “hvor sker auth” giver det rigtige auth-flow tilbage — ikke syv teststubbe.

Free-niveau: 3 repos, Op til 50K indekserede repo-linjer, intet kort.

Windsurf retter det, du peger på. Maguyva fortæller Cascade, hvilken fil den skal pege på.

Hvad hvert lag gør

Fire dele. Hver har en opgave.

// editor

Windsurf

Hvor du og Cascade rent faktisk arbejder.

// manuel kontekst

@-nævnelser + .windsurfrules

Manuel kontekst vinder, indtil repoet bliver stort.

// kodebase

Maguyva

Automatiske kodebasefakta over MCP.

// hvem betaler

Arbejdsområder, ikke brugerpladser

Agenter betaler ikke for brugerpladser. Se priser

Windsurf er editoren. Brug den.

IDE'en er ikke problemet. Cascade, tab-completion, rettelser på tværs af flere filer og .windsurfrules er glimrende, og du bruger dem allerede til:

  • Inline-forslag og Cascade-rettelser i den åbne fil.
  • Rettelser på tværs af flere filer, når ændringen er lokal.
  • .windsurfrules til repo-konventioner og stilregler.
  • @-nævnelser til at trække en bestemt fil ind i konteksten.

Bliv ved med det. Intet af det forsvinder.

Men i et rigtigt monorepo (TypeScript med workspace-afhængigheder, Python-services, blandede pakker) går agentkonteksten i stykker i det øjeblik, den relevante fil ikke allerede er på Cascades radar.

Manuelle løsninger, du allerede har prøvet, og hvor de går i stykker

Fire manuelle løsninger parret med deres svigttilstand. Venstre = det, du gør i dag. Højre = hvor det går i stykker.

// the fix

// nævn filerne

Du @-nævner de tre filer, du tror betyder noget. Cascade retter rent inde i dem.

// where it breaks

// nævnelse er et gæt

Det virker, når du allerede ved, hvilke filer der er involveret. Hele pointen med kontekstværktøjer er at fremdrage de filer, du ikke vidste, du skulle nævne.

// the fix

// indsæt uddragene

Du indsætter 200 linjer fra en anden pakke i Cascade for at give den nok kontekst.

// where it breaks

// indsat kode bliver forældet

Uddraget, du indsatte klokken 9, afspejler ikke den rebase, din kollega landede klokken 11. Cascade retter mod en fantomversion af pakken.

// the fix

// skriv et kontekstdokument

Du skriver en .windsurfrules-fil eller en arkitektur-markdown. Den er korrekt i dag.

// where it breaks

// dokumentation driver hurtigere end kode

Alt, du skriver i hånden, driver væk fra virkeligheden. Koden er den eneste sandhed. Et dokument, der forklarer kølaget, er korrekt i en uge — og forkert for evigt derefter.

// the fix

// behold regelfilerne

Du tilføjer .windsurfrules til navngivning, lint og build-kommandoer. Fremragende til adfærd.

// where it breaks

// regler ≠ indeks

.windsurfrules er det rette sted til “kør altid pnpm tsc -b før commits.” Det er ikke et søgbart indeks over hvert symbol, hver fil og hvert kaldested i dit monorepo.

Maguyva er laget nedenunder

Ikke en erstatning for Windsurf. Repo-kontekstlaget, der hægter sig på Cascades MCP-understøttelse.

  • Semantisk + AST + graf + tekst søg efter betydning, struktur, afhængighed eller ordret tekst. Hvert træf giver en filsti og et linjenummer.
  • På tværs af pakker som standard kaldesteder og importører på tværs af alle pakker i monorepoet — ikke kun den, Cascade har åben.
  • Branch-bevidst Maguyva ser den version af koden, Cascade retter i.
  • Supplerende, ikke konkurrerende .windsurfrules bliver ved med at gøre sit arbejde. @-nævnelser bliver ved med at gøre deres. Maguyva udfylder det hul, de ikke udfylder.

Cascade retter den fil, du peger på.

Maguyva fortæller agenten, hvilken fil den skal pege på.

Tre monorepo-workflows

På tværs af pakker og sprog. Forankret i den faktiske kaldgraf — ikke Cascades grep.

// workflow 01

Find auth-flowet på tværs af pakker, uden at nævne noget

cascade> hvor sker autentificering i dette monorepo?

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

 4 indgangspunkter på tværs af 4 pakker, rangeret efter kaldested-tæthed.
[exit 0]

Du nævnte ikke en fil. Du indsatte ikke et uddrag. Cascade har de fire filer, der betyder noget, i den rette rangering, og kan lave en forankret rettelse.

// workflow 02

Find den rigtige implementering, ikke teststubben

cascade> hvordan håndterer normalizePhoneNumber E.164?

semantic::query("normalize phone E.164")
  packages/shared/util/phone.ts:88     normalizePhoneNumber()  ← rigtig impl.
  packages/api/test/phone.spec.ts:14   jest.mock(...)          ← stub
[exit 0]

Navne lyver. Mocks overskygger rigtig kode. Maguyva rangerer den rigtige implementering over test-mock'en, på tværs af alle pakker.

// workflow 03

Tjek blast radius, før du refaktorerer

cascade> hvad kalder QueueDispatcher.publish på tværs af monorepoet?

graph::callers(QueueDispatcher.publish)
  3 i packages/billing/*
  1 i packages/audit/*
  1 i packages/notifications/*
  1 i services/python-worker/*  ← på tværs af sprog via gRPC-stub
[exit 0]

På tværs af pakker, og på tværs af sprog når du har et polyglot repo, dukker kaldesteder op direkte. Diffen er forankret i de rigtige importører, ikke Cascades grep.

Opsætning med Windsurf

Tre trin. Free-niveau: 3 repos, Op til 50K indekserede repo-linjer, intet kort.

  1. // step 01

    Indekser et repo på maguyva.ai

    Vælg det monorepo, hvor du har mærket mest kontekstsmerte.

  2. // step 02

    Tilføj Maguyva som en MCP-server i Windsurf

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

    Stil ét spørgsmål, du allerede kender svaret på

    Start ikke med hele din virksomhed. Start med ét repo og ét verificerbart spørgsmål, som “hvad kalder formatInvoice på tværs af pakker?”