// editori
Cursor
Missä oikeasti koodaat.
Cursor-käyttäjille
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.Neljä palaa. Jokaisella on tehtävänsä.
// editori
Missä oikeasti koodaat.
// manuaalinen konteksti
Manuaalinen konteksti toimii, kunnes repo kasvaa isoksi.
// koodikanta
Automaattiset koodikannan faktat MCP:n yli.
// kuka maksaa
Agentit eivät maksa käyttäjäpaikoista. Katso hinnoittelu
IDE ei ole ongelma. Cursor-editorin tab-täydennys, edit-with-AI, monitiedostomuokkaukset ja .cursor/rules ovat erinomaisia, ja käytät niitä jo:
.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.
Neljä manuaalista korjausta yhdistettynä niiden vikaantumistapaan. Vasen = mitä teet tänään. Oikea = missä se hajoaa.
// the fix
Mainitset @-merkillä kolme tiedostoa, joiden luulet olevan oleellisia. Cursor muokkaa niiden sisällä siististi.
// where it breaks
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ät 200 riviä toisesta paketista chattiin antaaksesi agentille tarpeeksi kontekstia.
// where it breaks
Klo 9 liittämäsi pätkä ei heijasta rebasea, jonka tiimikaverisi teki klo 11. Agentti muokkaa pakettia, joka on jo haamuversio.
// the fix
Kirjoitat .cursor/rules-tiedoston tai arkkitehtuurimarkdownin. Se pitää paikkansa tänään.
// where it breaks
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
Lisäät .cursor/rules-tiedoston nimeämiselle, lintaukselle ja build-komennoille. Loistavaa käytöksen ohjaamiseen.
// where it breaks
.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.
Ei Cursor-editorin korvaaja. Repokontekstin kerros, joka nojaa Cursor-editorin MCP-tukeen.
.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.
Pakettien ja kielten rajat ylittäen. Ankkuroitu oikeaan kutsugraafiin, ei Cursor-editorin grepiin.
// workflow 01
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
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
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.
Kolme vaihetta. Free-taso: 3 repositoriota, Enintään 50 000 indeksoitua repo-riviä, ei korttia.
// step 01
Valitse monorepo, jossa olet tuntenut eniten kontekstikipua.
// step 02
// ~/.cursor/mcp.json
{
"mcpServers": {
"maguyva": {
"url": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer <your-key>"
}
}
}
}// step 03
Älä aloita koko yrityksestäsi. Aloita yhdestä reposta ja yhdestä todennettavasta kysymyksestä, kuten “mikä kutsuu formatInvoice-funktiota pakettien yli?”