// ang editor
Devin Desktop
Kung saan talaga kayo ni Devin Local nagtatrabaho.
Para sa mga user ng Devin Desktop
Ang Devin Desktop (ang Windsurf IDE) ang editor at si Devin Local 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 Devin Desktop ang itinuro mo. Sinasabi ng Maguyva kay Devin Local kung aling file ang ituturo. Apat na piraso. May trabaho ang bawat isa.
// ang editor
Kung saan talaga kayo ni Devin Local 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 Devin Local, ang tab completion, multi-file edits, at .devin/rules/ ay mahusay, at ginagamit mo na sila para sa:
.devin/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 ni Devin Local.
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 Devin Local 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 Devin Local 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 Devin Local laban sa phantom na bersyon ng package.
// the fix
Sumusulat ka ng .devin/rules/ file o isang architecture markdown. Tama ito ngayon.
// where it breaks
Kahit ano mang isinulat mo nang mano-mano 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 .devin/rules/ para sa naming, lint, at build commands. Mahusay para sa behavior.
// where it breaks
Ang .devin/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 Devin Desktop. Ito ang repo-context layer na naka-sabit sa MCP support ni Devin Local.
.devin/rules/ ang trabaho nito. Patuloy na ginagawa ng @-mentions ang trabaho nila. Pinupunan ng Maguyva ang puwang na hindi nila napupunan. Ini-edit ni Devin Local ang file na itinuro mo.
Sinasabi ng Maguyva sa agent kung aling file ang ituturo.
Cross-package, cross-language. Naka-ground sa aktwal na call graph, hindi sa grep ni Devin Local.
// workflow 01
devin> 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 Devin Local na ang apat na file na mahalaga, sa tamang ranking, at kaya na nitong gumawa ng grounded na edit.
// workflow 02
devin> 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. Natatabunan ng mocks ang tunay na code. Inilalagay ng Maguyva ang tunay na implementation sa itaas ng test mock, sa lahat ng package.
// workflow 03
devin> 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 sa tunay na importer, hindi sa grep ni Devin Local.
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
~/.config/devin/mcp_config.json
{
"mcpServers": {
"maguyva": {
"url": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer ${env:MAGUYVA_API_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?”