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