ข้ามไปที่เนื้อหา

สำหรับผู้ใช้ Windsurf

Windsurf แก้ไขไฟล์
Maguyva มองเห็นทั้งรีโพ

Windsurf คือเอดิเตอร์ และ Cascade คือเอเจนต์ แต่ในโมโนรีโพ เอเจนต์ก็ยังต้องมีแผนที่ว่าไฟล์ไหนสำคัญ Maguyva ทำดัชนีโค้ดเบสของคุณและส่งข้อมูลกลับผ่าน MCP (เชิงความหมาย เชิง AST เชิงกราฟ และเชิงข้อความ) ทำให้คำถาม “auth ทำงานตรงไหน” ได้คำตอบเป็นโฟลว์การยืนยันตัวตนจริง ไม่ใช่ test stub เจ็ดตัว

แผน Free: รีโพซิทอรี 3 แห่ง, บรรทัดที่ทำดัชนีสูงสุด 50,000 บรรทัด ไม่ต้องใช้บัตร

Windsurf แก้ไขสิ่งที่คุณชี้ไป Maguyva บอก Cascade ว่าควรชี้ไปที่ไฟล์ไหน

แต่ละชั้นทำหน้าที่อะไร

สี่ส่วนประกอบ แต่ละส่วนมีหน้าที่ของตัวเอง

// เอดิเตอร์

Windsurf

ที่ที่คุณและ Cascade ทำงานกันจริงๆ

// บริบทแบบแมนวล

@ mentions + .windsurfrules

บริบทแบบแมนวลเวิร์กดี จนกว่ารีโพจะใหญ่ขึ้น

// โค้ดเบส

Maguyva

ข้อมูลจริงของโค้ดเบสแบบอัตโนมัติผ่าน MCP

// ใครจ่ายเงิน

เวิร์กสเปซ ไม่ใช่ที่นั่ง

เอเจนต์ไม่ต้องจ่ายค่าที่นั่ง ดูราคา

Windsurf คือเอดิเตอร์ ใช้มันให้เต็มที่

IDE ไม่ใช่ปัญหา ทั้ง Cascade, การเติมคำอัตโนมัติแบบแท็บ, การแก้ไขหลายไฟล์ และ .windsurfrules ยอดเยี่ยมอยู่แล้ว และคุณก็ใช้มันอยู่แล้วสำหรับ:

  • คำแนะนำแบบอินไลน์และการแก้ไขของ Cascade ในไฟล์ที่เปิดอยู่
  • การแก้ไขหลายไฟล์เมื่อการเปลี่ยนแปลงอยู่ในขอบเขตจำกัด
  • .windsurfrules สำหรับข้อตกลงของรีโพและกฎด้านสไตล์
  • การ @-mention เพื่อดึงไฟล์ที่ต้องการเข้ามาในบริบท

ทำแบบนี้ต่อไปได้เลย ไม่มีอะไรหายไปไหน

แต่ในโมโนรีโพจริง (TypeScript ที่มีการพึ่งพาระดับเวิร์กสเปซ, บริการ Python, แพ็กเกจปะปนกัน) บริบทของเอเจนต์จะพังทันทีที่ไฟล์ที่เกี่ยวข้องยังไม่อยู่ในสายตาของ Cascade

วิธีแก้แบบแมนวลที่คุณลองมาแล้ว และจุดที่มันพัง

วิธีแก้แบบแมนวลสี่แบบ คู่กับจุดที่มันล้มเหลว ฝั่งซ้าย = สิ่งที่คุณทำอยู่ทุกวันนี้ ฝั่งขวา = จุดที่มันพัง

// the fix

// mention ไฟล์ที่คิดว่าใช่

คุณ @-mention ไฟล์สามไฟล์ที่คิดว่าสำคัญ Cascade ก็แก้ไขในไฟล์เหล่านั้นได้เนียนๆ

// where it breaks

// การ mention คือการเดา

มันได้ผลก็ต่อเมื่อคุณรู้อยู่แล้วว่าไฟล์ไหนเกี่ยวข้อง ประเด็นทั้งหมดของเครื่องมือบริบทคือการเปิดเผยไฟล์ที่คุณไม่รู้ว่าต้อง 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 เสมอ” แต่มันไม่ใช่ดัชนีที่สอบถามได้ของทุกสัญลักษณ์ ไฟล์ และจุดเรียกใช้ในโมโนรีโพของคุณ

Maguyva คือชั้นที่อยู่ข้างใต้

ไม่ได้มาแทนที่ Windsurf แต่เป็นชั้นบริบทของรีโพที่ต่อยอดจากการรองรับ MCP ของ Cascade

  • เชิงความหมาย + AST + กราฟ + ข้อความ ค้นหาได้ทั้งตามความหมาย โครงสร้าง การพึ่งพา หรือข้อความตรงตัว ทุกผลลัพธ์คืนพาธไฟล์และเลขบรรทัดมาให้
  • ข้ามแพ็กเกจโดยค่าเริ่มต้น จุดเรียกใช้และผู้นำเข้าครอบคลุมทุกแพ็กเกจในโมโนรีโพ ไม่ใช่แค่แพ็กเกจที่ Cascade เปิดอยู่ตอนนี้
  • รับรู้แบรนช์ Maguyva มองเห็นโค้ดเวอร์ชันเดียวกับที่ Cascade กำลังแก้ไขอยู่
  • เสริมกัน ไม่ได้แข่งกัน .windsurfrules ก็ยังทำหน้าที่ของมันต่อไป @-mentions ก็ยังทำหน้าที่ของมันต่อไป Maguyva เข้ามาเติมเต็มช่องว่างที่ทั้งสองอย่างเติมไม่ได้

Cascade แก้ไขไฟล์ที่คุณชี้ไป

Maguyva บอกเอเจนต์ว่าควรชี้ไปที่ไฟล์ไหน

สามเวิร์กโฟลว์สำหรับโมโนรีโพ

ข้ามแพ็กเกจ ข้ามภาษา อ้างอิงจากกราฟการเรียกใช้จริง ไม่ใช่การ grep ของ Cascade

// workflow 01

ค้นหาโฟลว์การยืนยันตัวตนข้ามแพ็กเกจ โดยไม่ต้อง mention อะไรเลย

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

หาการอิมพลีเมนต์จริง ไม่ใช่ test stub

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

ตั้งค่ากับ Windsurf

สามขั้นตอน แผน Free: รีโพซิทอรี 3 แห่ง, บรรทัดที่ทำดัชนีสูงสุด 50,000 บรรทัด ไม่ต้องใช้บัตร

  1. // step 01

    ทำดัชนีรีโพที่ maguyva.ai

    เลือกโมโนรีโพที่คุณเจอปัญหาเรื่องบริบทมากที่สุด

  2. // step 02

    เพิ่ม Maguyva เป็นเซิร์ฟเวอร์ MCP ใน Windsurf

    // ~/.codeium/windsurf/mcp_config.json
    {
      "mcpServers": {
        "maguyva": {
          "serverUrl": "https://maguyva.tools/mcp",
          "headers": {
            "Authorization": "Bearer <your-key>"
          }
        }
      }
    }
  3. // step 03

    ถามคำถามเดียวที่คุณรู้คำตอบอยู่แล้ว

    อย่าเริ่มจากทั้งบริษัทของคุณ เริ่มจากรีโพเดียวและคำถามเดียวที่ตรวจสอบได้ เช่น “มีอะไรเรียก formatInvoice บ้างข้ามแพ็กเกจ?”