Siirry sisältöön

Windsurf-käyttäjille

Windsurf muokkaa tiedostoa.
Maguyva näkee repon.

Windsurf on editori ja Cascade on agentti. Monorepossa agentti tarvitsee silti kartan siitä, mikä tiedosto on tärkeä. Maguyva indeksoi koodikantasi ja tarjoaa sen takaisin MCP:n yli (semanttinen, AST, graafi ja teksti), joten “missä autentikointi tapahtuu” palauttaa oikean autentikointivuon, ei seitsemää testitynkää.

Free-taso: 3 repositoriota, Enintään 50 000 indeksoitua repo-riviä, ei korttia.

Windsurf muokkaa sitä, mihin osoitat. Maguyva kertoo Cascadelle, mihin tiedostoon osoittaa.

Mitä kukin kerros tekee

Neljä palaa. Jokaisella on tehtävänsä.

// editori

Windsurf

Missä sinä ja Cascade oikeasti työskentelette.

// manuaalinen konteksti

@-maininnat + .windsurfrules

Manuaalinen konteksti toimii, kunnes repo kasvaa isoksi.

// koodikanta

Maguyva

Automaattiset koodikannan faktat MCP:n yli.

// kuka maksaa

Työtiloja, ei käyttäjäpaikkoja

Agentit eivät maksa käyttäjäpaikoista. Katso hinnoittelu

Windsurf on editori. Käytä sitä.

IDE ei ole ongelma. Cascade, tab-täydennys, monitiedostomuokkaukset ja .windsurfrules ovat erinomaisia, ja käytät niitä jo:

  • Rivinsisäiset ehdotukset ja Cascade-muokkaukset avoimessa tiedostossa.
  • Monitiedostomuokkaukset, kun muutos on paikallinen.
  • .windsurfrules reposopimuksiin ja tyylikaiteisiin.
  • @-maininnat tietyn tiedoston tuomiseksi kontekstiin.

Jatka sitä. Mikään niistä ei katoa minnekään.

Mutta oikeassa monorepossa (TypeScript työtilariippuvuuksineen, Python-palvelut, sekapaketit) agentin konteksti hajoaa heti, kun oleellinen tiedosto ei ole vielä Cascaden tutkassa.

Manuaaliset korjaukset, jotka olet jo kokeillut, ja missä ne hajoavat

Neljä manuaalista korjausta yhdistettynä niiden vikaantumistapaan. Vasen = mitä teet tänään. Oikea = missä se hajoaa.

// the fix

// mainitse tiedostot

Mainitset @-merkillä kolme tiedostoa, joiden luulet olevan oleellisia. Cascade muokkaa niiden sisällä siististi.

// where it breaks

// mainitseminen on arvaus

Se toimii, kun jo tiedät, mitkä tiedostot ovat mukana. Kontekstityökalujen koko pointti on tuoda esiin tiedostot, joita et osannut mainita.

// the fix

// liitä koodinpätkät

Liität 200 riviä toisesta paketista Cascadelle antaaksesi sille tarpeeksi kontekstia.

// where it breaks

// liitetty koodi vanhenee

Klo 9 liittämäsi pätkä ei heijasta rebasea, jonka tiimikaverisi teki klo 11. Cascade muokkaa pakettia, joka on jo haamuversio.

// the fix

// kirjoita kontekstidokumentti

Kirjoitat .windsurfrules-tiedoston tai arkkitehtuurimarkdownin. Se pitää paikkansa tänään.

// where it breaks

// dokumentit vanhenevat koodia nopeammin

Kaikki käsin kirjoitettu ajautuu pois ajan tasalta. Koodi on totuuden lähde. Jonoa kuvaava dokumentti on oikein viikon, sitten väärin loputtomiin.

// the fix

// pidä sääntötiedostot

Lisäät .windsurfrules-tiedoston nimeämiselle, lintaukselle ja build-komennoille. Loistavaa käytöksen ohjaamiseen.

// where it breaks

// säännöt ≠ indeksi

.windsurfrules on oikea paikka lauseelle “aja aina pnpm tsc -b ennen committeja.” Se ei ole kysyttävä indeksi jokaisesta symbolista, tiedostosta ja kutsupaikasta monorepossasi.

Maguyva on kerros alla

Ei Windsurf-editorin korvaaja. Repokontekstin kerros, joka nojaa Cascaden MCP-tukeen.

  • Semanttinen + AST + graafi + teksti haku merkityksen, rakenteen, riippuvuuden tai kirjaimellisen tekstin perusteella. Jokainen osuma palauttaa tiedostopolun ja rivinumeron.
  • Pakettirajat ylittävä oletuksena kutsupaikat ja tuojat jokaisessa monorepon paketissa, ei vain siinä, joka on Cascadella avoinna.
  • Haaratietoinen Maguyva näkee sen koodiversion, jota Cascade muokkaa.
  • Täydentävä, ei kilpaileva .windsurfrules jatkaa tehtäväänsä. @-maininnat jatkavat omaansa. Maguyva täyttää aukon, jota ne eivät täytä.

Cascade muokkaa tiedostoa, johon osoitat.

Maguyva kertoo agentille, mihin tiedostoon osoittaa.

Kolme monorepo-työnkulkua

Pakettien ja kielten rajat ylittäen. Ankkuroitu oikeaan kutsugraafiin, ei Cascaden grepiin.

// workflow 01

Löydä autentikointivuo pakettien yli, mainitsematta mitään

cascade> where does authentication happen in this monorepo?

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 entry points across 4 packages, ranked by call-site density.
[exit 0]

Et maininnut tiedostoa. Et liittänyt koodinpätkää. Cascadella on ne neljä tiedostoa, jotka ovat oleellisia, oikeassa järjestyksessä, ja se voi tehdä ankkuroidun muokkauksen.

// workflow 02

Löydä oikea toteutus, ei testitynkää

cascade> how does normalizePhoneNumber handle E.164?

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

Nimet valehtelevat. Mockit peittävät oikean koodin. Maguyva järjestää oikean toteutuksen testimockin yläpuolelle, jokaisessa paketissa.

// workflow 03

Tarkista vaikutusalue ennen refaktorointia

cascade> what calls QueueDispatcher.publish across the monorepo?

graph::callers(QueueDispatcher.publish)
  3 in packages/billing/*
  1 in packages/audit/*
  1 in packages/notifications/*
  1 in services/python-worker/*  ← cross-language via gRPC stub
[exit 0]

Pakettien ja kielten rajat ylittäen, kun repo on monikielinen, kutsupaikat tulevat esiin suoraan. Diffi on ankkuroitu oikeisiin tuojiin, ei Cascaden grepiin.

Asennus Windsurf-editorilla

Kolme vaihetta. Free-taso: 3 repositoriota, Enintään 50 000 indeksoitua repo-riviä, ei korttia.

  1. // step 01

    Indeksoi repo osoitteessa maguyva.ai

    Valitse monorepo, jossa olet tuntenut eniten kontekstikipua.

  2. // step 02

    Lisää Maguyva MCP-palvelimeksi kohteessa Windsurf

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

    Kysy yksi kysymys, jonka vastauksen jo tiedät

    Älä aloita koko yrityksestäsi. Aloita yhdestä reposta ja yhdestä todennettavasta kysymyksestä, kuten “mikä kutsuu formatInvoice-funktiota pakettien yli?”