Siirry sisältöön

Cursor-käyttäjille

Cursor muokkaa tiedostoa.
Maguyva näkee repon.

Cursor on editori. 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.

Cursor muokkaa sitä, mihin osoitat. Maguyva kertoo agentille, mihin tiedostoon osoittaa.

Mitä kukin kerros tekee

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

// editori

Cursor

Missä oikeasti koodaat.

// manuaalinen konteksti

@-maininnat + kiinnitykset

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

Cursor on editori. Käytä sitä.

IDE ei ole ongelma. Cursor-editorin tab-täydennys, edit-with-AI, monitiedostomuokkaukset ja .cursor/rules ovat erinomaisia, ja käytät niitä jo:

  • Rivinsisäiset ehdotukset ja edit-with-AI avoimessa tiedostossa.
  • Monitiedostomuokkaukset, kun muutos on paikallinen.
  • .cursor/rules 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ä tutkassasi.

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

// kiinnitä tiedostot

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

// where it breaks

// kiinnittäminen on arvaus

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

// the fix

// liitä koodinpätkät

Liität 200 riviä toisesta paketista chattiin antaaksesi agentille tarpeeksi kontekstia.

// where it breaks

// liitetty koodi vanhenee

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

// the fix

// kirjoita kontekstidokumentti

Kirjoitat .cursor/rules-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 .cursor/rules-tiedoston nimeämiselle, lintaukselle ja build-komennoille. Loistavaa käytöksen ohjaamiseen.

// where it breaks

// säännöt ≠ indeksi

.cursor/rules 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 Cursor-editorin korvaaja. Repokontekstin kerros, joka nojaa Cursor-editorin 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 juuri avoinna olevassa.
  • Haaratietoinen Maguyva näkee sen koodiversion, jota Cursor muokkaa.
  • Täydentävä, ei kilpaileva .cursor/rules jatkaa tehtäväänsä. @-maininnat jatkavat omaansa. Maguyva täyttää aukon, jota ne eivät täytä.

Cursor muokkaa tiedostoa, johon osoitat.

Maguyva kertoo agentille, mihin tiedostoon osoittaa.

Kolme monorepo-työnkulkua

Pakettien ja kielten rajat ylittäen. Ankkuroitu oikeaan kutsugraafiin, ei Cursor-editorin grepiin.

// workflow 01

Löydä autentikointivuo pakettien yli, kiinnittämättä mitään

cursor> 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 kiinnittänyt tiedostoa. Et liittänyt koodinpätkää. Agentilla on ne neljä tiedostoa, jotka ovat oleellisia, oikeassa järjestyksessä, ja se voi tehdä ankkuroidun muokkauksen.

// workflow 02

Löydä oikea toteutus, ei testitynkää

cursor> 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

cursor> 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]

Ristipaketti ja kielten välinen, kun sinulla on polyglot-repo, puhelusivustot näkyvät rivissä. Diff on maadoitettu todellisia maahantuojia vastaan, ei Cursor:n grepiä vastaan.

Asennus Cursor-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 Cursor:n asetuksissa

    // ~/.cursor/mcp.json
    {
      "mcpServers": {
        "maguyva": {
          "url": "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?”