// ang editor
Windsurf
Kung saan talaga kayo ni Cascade nagtatrabaho.
Para sa mga user ng Windsurf
Ang Windsurf ang editor at si Cascade ang agent. 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 Windsurf ang itinuro mo. Sinasabi ng Maguyva kay Cascade kung aling file ang ituturo.Apat na piraso. May trabaho ang bawat isa.
// ang editor
Kung saan talaga kayo ni Cascade nagtatrabaho.
// 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. Si Cascade, ang tab completion, multi-file edits, at .windsurfrules ay mahusay, at ginagamit mo na sila para sa:
.windsurfrules 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 ni Cascade.
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 si Cascade sa loob ng mga ito.
// where it breaks
Gumagana ito 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 banggitin.
// the fix
Nagpa-paste ka ng 200 linya mula sa ibang package kay Cascade para bigyan ito 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 si Cascade laban sa phantom na bersyon ng package.
// the fix
Sumusulat ka ng .windsurfrules 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 .windsurfrules para sa naming, lint, at build commands. Mahusay para sa behavior.
// where it breaks
Ang .windsurfrules 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 Windsurf. Ito ang repo-context layer na naka-sabit sa MCP support ni Cascade.
.windsurfrules ang trabaho nito. Patuloy na ginagawa ng @-mentions ang trabaho nila. Pinupunan ng Maguyva ang puwang na hindi nila napupunan.Ini-edit ni Cascade 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 ni Cascade.
// workflow 01
cascade> 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 nagbanggit ng file. Hindi ka nag-paste ng snippet. Nasa kay Cascade na ang apat na file na mahalaga, sa tamang ranking, at kaya na nitong gumawa ng grounded na edit.
// workflow 02
cascade> 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
cascade> 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 ni Cascade.
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
// ~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"maguyva": {
"serverUrl": "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?”