// ang editor
Cursor
Kung saan ka talagang nagko-code.
Para sa mga user ng Cursor
Ang Cursor ang editor. Sa isang monorepo, kailangan pa rin ng agent ng mapa kung aling file ang mahalaga. Ini-index ng Maguyva ang codebase mo at ibinabalik ito sa pamamagitan ng MCP (semantic, AST, graph, at text), kaya ang “saan nangyayari ang auth” ay nagbabalik ng aktwal na auth flow, hindi pitong test stub.
May Free tier: 3 repository, Hanggang 50K na naka-index na linya ng repo, walang card.
Ini-edit ng Cursor ang itinuro mo. Sinasabi ng Maguyva sa agent kung aling file ang ituturo.Apat na piraso. May trabaho ang bawat isa.
// ang editor
Kung saan ka talagang nagko-code.
// manual na context
Nananalo ang manual context, hanggang lumaki ang repo.
// ang codebase
Automatic na codebase facts sa pamamagitan ng MCP.
// sino ang nagbabayad
Hindi nagbabayad ng seats ang mga agent. Tingnan ang pricing
Hindi ang IDE ang problema. Ang tab completion ng Cursor, edit-with-AI, multi-file edits, at .cursor/rules ay mahusay, at ginagamit mo na sila para sa:
.cursor/rules para sa mga convention ng repo at style guardrails.@-mentions para kunin ang isang partikular na file papasok sa context.Ituloy iyan. Wala sa mga iyon ang mawawala.
Pero sa isang tunay na monorepo (TypeScript na may workspace deps, Python services, magkakahalong package) nasisira ang agent context sa sandaling ang kaugnay na file ay wala pa sa radar mo.
Apat na manual na fix na naka-pares sa kanilang failure mode. Kaliwa = ang ginagawa mo ngayon. Kanan = kung saan ito nasisira.
// the fix
Ina-@-mention mo ang tatlong file na sa tingin mo mahalaga. Malinis na nag-e-edit ang Cursor sa loob ng mga ito.
// where it breaks
Gumagana ang pinning kapag alam mo na kung aling mga file ang kasangkot. Ang buong punto ng context tools ay ilitaw ang mga file na hindi mo alam na dapat pinin.
// the fix
Nagpa-paste ka ng 200 linya mula sa ibang package papasok sa chat para bigyan ang agent ng sapat na context.
// where it breaks
Hindi na sinasalamin ng snippet na pinaste mo nang 9 a.m. ang rebase na na-land ng teammate mo nang 11 a.m. Nag-e-edit ang agent laban sa phantom na bersyon ng package.
// the fix
Sumusulat ka ng .cursor/rules file o isang architecture markdown. Tama ito ngayon.
// where it breaks
Kahit ano mang isinulat mo nang kamay ay nagd-drift. Ang code ang source of truth. Tama ang isang doc na nagpapaliwanag sa queue layer sa loob ng isang linggo, pagkatapos ay mali na habambuhay.
// the fix
Nagdaragdag ka ng .cursor/rules para sa naming, lint, build commands. Mahusay para sa behavior.
// where it breaks
Ang .cursor/rules ang tamang lugar para sa “laging patakbuhin ang pnpm tsc -b bago mag-commit.” Hindi ito queryable na index ng bawat symbol, file, at call-site sa monorepo mo.
Hindi ito kapalit ng Cursor. Ito ang repo-context layer na naka-sabit sa MCP support ng Cursor.
.cursor/rules ang trabaho nito. Patuloy na ginagawa ng @-mentions ang trabaho nila. Pinupunan ng Maguyva ang puwang na hindi nila napupunan.Ini-edit ng Cursor ang file na itinuro mo.
Sinasabi ng Maguyva sa agent kung aling file ang ituturo.
Cross-package, cross-language. Naka-ground laban sa aktwal na call graph, hindi sa grep ng Cursor.
// workflow 01
cursor> saan nangyayari ang authentication sa monorepo na ito? 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 point sa 4 package, naka-rank ayon sa call-site density. [exit 0]
Hindi ka nag-pin ng file. Hindi ka nag-paste ng snippet. Nasa agent na ang apat na file na mahalaga, sa tamang ranking, at kaya na nitong gumawa ng grounded na edit.
// workflow 02
cursor> paano hinahandle ng normalizePhoneNumber ang 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]
Nagsisinungaling ang mga pangalan. Nagbabalot ang mocks sa tunay na code. Inilalagay ng Maguyva ang tunay na implementation sa itaas ng test mock, sa lahat ng package.
// workflow 03
cursor> ano ang tumatawag sa QueueDispatcher.publish sa buong 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]
Cross-package, at cross-language kapag polyglot ang repo mo, lumilitaw ang mga call-site nang inline. Naka-ground ang diff laban sa tunay na importer, hindi sa grep ng Cursor.
Tatlong hakbang. Free tier: 3 repository, Hanggang 50K na naka-index na linya ng repo, walang card.
// step 01
Piliin ang monorepo kung saan mo pinakanaramdaman ang context pain.
// step 02
// ~/.cursor/mcp.json
{
"mcpServers": {
"maguyva": {
"url": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer <your-key>"
}
}
}
}// step 03
Huwag magsimula sa buong kompanya mo. Magsimula sa isang repo at isang verifiable na tanong, tulad ng “ano ang tumatawag sa formatInvoice sa mga package?”