// เอดิเตอร์
Cursor
ที่ที่คุณเขียนโค้ดจริงๆ
สำหรับผู้ใช้ Cursor
Cursor คือเอดิเตอร์ แต่ในโมโนรีโพ เอเจนต์ก็ยังต้องมีแผนที่ว่าไฟล์ไหนสำคัญ Maguyva ทำดัชนีโค้ดเบสของคุณและส่งข้อมูลกลับผ่าน MCP (เชิงความหมาย เชิง AST เชิงกราฟ และเชิงข้อความ) ทำให้คำถาม “auth ทำงานตรงไหน” ได้คำตอบเป็นโฟลว์การยืนยันตัวตนจริง ไม่ใช่ test stub เจ็ดตัว
แผน Free: รีโพซิทอรี 3 แห่ง, บรรทัดที่ทำดัชนีสูงสุด 50,000 บรรทัด ไม่ต้องใช้บัตร
Cursor แก้ไขสิ่งที่คุณชี้ไป Maguyva บอกเอเจนต์ว่าควรชี้ไปที่ไฟล์ไหนสี่ส่วนประกอบ แต่ละส่วนมีหน้าที่ของตัวเอง
// เอดิเตอร์
ที่ที่คุณเขียนโค้ดจริงๆ
// บริบทแบบแมนวล
บริบทแบบแมนวลเวิร์กดี จนกว่ารีโพจะใหญ่ขึ้น
// โค้ดเบส
ข้อมูลจริงของโค้ดเบสแบบอัตโนมัติผ่าน MCP
// ใครจ่ายเงิน
เอเจนต์ไม่ต้องจ่ายค่าที่นั่ง ดูราคา
IDE ไม่ใช่ปัญหา ทั้งการเติมคำอัตโนมัติแบบแท็บ, edit-with-AI, การแก้ไขหลายไฟล์ และ .cursor/rules ของ Cursor ยอดเยี่ยมอยู่แล้ว และคุณก็ใช้มันอยู่แล้วสำหรับ:
.cursor/rules สำหรับข้อตกลงของรีโพและกฎด้านสไตล์@-mention เพื่อดึงไฟล์ที่ต้องการเข้ามาในบริบททำแบบนี้ต่อไปได้เลย ไม่มีอะไรหายไปไหน
แต่ในโมโนรีโพจริง (TypeScript ที่มีการพึ่งพาระดับเวิร์กสเปซ, บริการ Python, แพ็กเกจปะปนกัน) บริบทของเอเจนต์จะพังทันทีที่ไฟล์ที่เกี่ยวข้องยังไม่อยู่ในสายตาของคุณ
วิธีแก้แบบแมนวลสี่แบบ คู่กับจุดที่มันล้มเหลว ฝั่งซ้าย = สิ่งที่คุณทำอยู่ทุกวันนี้ ฝั่งขวา = จุดที่มันพัง
// the fix
คุณ @-mention ไฟล์สามไฟล์ที่คิดว่าสำคัญ Cursor ก็แก้ไขในไฟล์เหล่านั้นได้เนียนๆ
// where it breaks
การปักหมุดได้ผลก็ต่อเมื่อคุณรู้อยู่แล้วว่าไฟล์ไหนเกี่ยวข้อง ประเด็นทั้งหมดของเครื่องมือบริบทคือการเปิดเผยไฟล์ที่คุณไม่รู้ว่าต้องปักหมุด
// the fix
คุณวางโค้ด 200 บรรทัดจากแพ็กเกจอื่นลงในแชท เพื่อให้เอเจนต์มีบริบทเพียงพอ
// where it breaks
สนิปเป็ตที่คุณวางไว้ตอน 9 โมงเช้า ไม่สะท้อนการ rebase ที่เพื่อนร่วมทีมทำเสร็จตอน 11 โมง เอเจนต์กำลังแก้ไขโดยอิงกับแพ็กเกจเวอร์ชันผีที่ไม่มีอยู่จริงแล้ว
// the fix
คุณเขียนไฟล์ .cursor/rules หรือ markdown อธิบายสถาปัตยกรรม วันนี้มันยังถูกต้องอยู่
// where it breaks
อะไรก็ตามที่คุณเขียนด้วยมือจะค่อยๆ คลาดเคลื่อนไปเรื่อยๆ โค้ดคือแหล่งความจริงเดียว เอกสารที่อธิบายชั้นคิวถูกต้องอยู่แค่หนึ่งสัปดาห์ แล้วก็ผิดตลอดกาลหลังจากนั้น
// the fix
คุณเพิ่ม .cursor/rules สำหรับการตั้งชื่อ lint และคำสั่งบิลด์ เหมาะมากสำหรับควบคุมพฤติกรรม
// where it breaks
.cursor/rules คือที่ที่เหมาะสำหรับ “ต้องรัน pnpm tsc -b ก่อน commit เสมอ” แต่มันไม่ใช่ดัชนีที่สอบถามได้ของทุกสัญลักษณ์ ไฟล์ และจุดเรียกใช้ในโมโนรีโพของคุณ
ไม่ได้มาแทนที่ Cursor แต่เป็นชั้นบริบทของรีโพที่ต่อยอดจากการรองรับ MCP ของ Cursor
.cursor/rules ก็ยังทำหน้าที่ของมันต่อไป @-mentions ก็ยังทำหน้าที่ของมันต่อไป Maguyva เข้ามาเติมเต็มช่องว่างที่ทั้งสองอย่างเติมไม่ได้Cursor แก้ไขไฟล์ที่คุณชี้ไป
Maguyva บอกเอเจนต์ว่าควรชี้ไปที่ไฟล์ไหน
ข้ามแพ็กเกจ ข้ามภาษา อ้างอิงจากกราฟการเรียกใช้จริง ไม่ใช่การ grep ของ Cursor
// workflow 01
cursor> ระบบยืนยันตัวตนในโมโนรีโพนี้ทำงานที่ตรงไหน? 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 จุด ครอบคลุม 4 แพ็กเกจ จัดอันดับตามความหนาแน่นของจุดเรียกใช้ [exit 0]
คุณไม่ได้ปักหมุดไฟล์ไหนเลย ไม่ได้วางสนิปเป็ตด้วย เอเจนต์มีไฟล์สำคัญทั้งสี่ไฟล์พร้อมลำดับที่ถูกต้อง และแก้ไขได้อย่างมีหลักฐานอ้างอิงจริง
// workflow 02
cursor> normalizePhoneNumber จัดการ E.164 ยังไง? semantic::query("normalize phone E.164") packages/shared/util/phone.ts:88 normalizePhoneNumber() ← ของจริง packages/api/test/phone.spec.ts:14 jest.mock(...) ← stub [exit 0]
ชื่อบอกอะไรไม่ได้เสมอไป mock บดบังโค้ดจริงได้ Maguyva จัดอันดับการอิมพลีเมนต์จริงให้อยู่เหนือ test mock ในทุกแพ็กเกจ
// workflow 03
cursor> อะไรเรียก QueueDispatcher.publish บ้างในโมโนรีโพนี้? graph::callers(QueueDispatcher.publish) 3 ครั้งใน packages/billing/* 1 ครั้งใน packages/audit/* 1 ครั้งใน packages/notifications/* 1 ครั้งใน services/python-worker/* ← ข้ามภาษาผ่าน gRPC stub [exit 0]
ข้ามแพ็กเกจ และข้ามภาษาด้วยถ้ารีโพของคุณเป็นแบบหลายภาษา จุดเรียกใช้จะโผล่ขึ้นมาให้เห็นทันที การเปลี่ยนแปลงอ้างอิงจากผู้นำเข้าจริง ไม่ใช่การ grep ของ Cursor
สามขั้นตอน แผน Free: รีโพซิทอรี 3 แห่ง, บรรทัดที่ทำดัชนีสูงสุด 50,000 บรรทัด ไม่ต้องใช้บัตร
// step 01
เลือกโมโนรีโพที่คุณเจอปัญหาเรื่องบริบทมากที่สุด
// step 02
// ~/.cursor/mcp.json
{
"mcpServers": {
"maguyva": {
"url": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer <your-key>"
}
}
}
}// step 03
อย่าเริ่มจากทั้งบริษัทของคุณ เริ่มจากรีโพเดียวและคำถามเดียวที่ตรวจสอบได้ เช่น “มีอะไรเรียก formatInvoice บ้างข้ามแพ็กเกจ?”