// บริบท
GEMINI.md
Gemini ควรทำตัวยังไงในรีโพนี้
สำหรับผู้ใช้ Gemini CLI
GEMINI.md กำหนดบริบทในการทำงาน MCP ให้ Gemini เอื้อมไปหยิบเครื่องมือได้ Maguyva คือเซิร์ฟเวอร์ MCP ที่มอบแผนที่ของรีโพที่สอบถามได้ให้ Gemini ทำให้การแก้ไขครั้งแรกไม่ใช่การเดาโครงสร้างไฟล์
แผน Free: รีโพซิทอรี 3 แห่ง, บรรทัดที่ทำดัชนีสูงสุด 50,000 บรรทัด ไม่ต้องใช้บัตร
GEMINI.md คือบริบท MCP คือช่องทางสื่อสาร Maguyva คือแผนที่สี่แนวคิด แต่ละอย่างทำหน้าที่ของตัวเอง
// บริบท
Gemini ควรทำตัวยังไงในรีโพนี้
// การส่งผ่าน
วิธีที่ Gemini เอื้อมไปหยิบเครื่องมือและบริบทจากภายนอก
// โค้ดเบส
เซิร์ฟเวอร์ MCP ที่คืนข้อเท็จจริงของรีโพที่มีหลักฐานอ้างอิง
// ใครจ่ายเงิน
เอเจนต์ไม่ต้องจ่ายค่าที่นั่ง ดูราคา
คำสั่งที่ต้องคงอยู่ถาวรควรอยู่ใน GEMINI.md มันคือที่ที่เหมาะสำหรับ:
เขียนให้กระชับ จำกัดขอบเขตไว้ แล้ว commit มันเก็บไว้
แต่ GEMINI.md ไม่เคยถูกออกแบบมาให้เป็นดัชนีที่สอบถามได้ของทุกสัญลักษณ์ ไฟล์ และจุดเรียกใช้ในรีโพของคุณ
สี่รูปแบบความล้มเหลว การ์ดละหนึ่งแบบ
การบอก Gemini ว่าต้องทำงานยังไง ไม่ได้บอกว่ามีอะไรอยู่จริง การแก้ไขครั้งแรกในแพ็กเกจที่ไม่คุ้นเคยคือการเดาพาธไฟล์และชื่อฟังก์ชัน GEMINI.md ไม่สามารถลิสต์ทุกสัญลักษณ์ได้ และคุณก็ไม่อยากให้มันเป็นแบบนั้นด้วย
บล็อกใน GEMINI.md ที่อธิบายโครงสร้างคิวของคุณถูกต้องอยู่จนกว่าจะมีใครเพิ่มคอนซูมเมอร์ใหม่เข้ามา ตอนนี้โค้ดคือแหล่งความจริง ส่วนเอกสารล้าสมัยไปแล้วอย่างมั่นใจ Gemini กลับอ่านอันที่ผิดอยู่
“มีอะไรอ้างอิงคลาสนี้บ้าง?” ตอบไม่ได้จากไฟล์ markdown Gemini ก็ต้อง grep แล้วภาวนาไปทั่วโมโนรีโพ หรือไม่ก็ขอให้คุณวางจุดเรียกใช้ลงในแชท
หน้าต่างบริบทที่ใหญ่ ไม่เหมือนกับดัชนีที่สอบถามได้ การโหลด GEMINI.md จน Gemini “รู้พอ” ก็ยังแลกงบประมาณการคิดวิเคราะห์กับปริมาณบริบทนิ่งๆ อยู่ดี
ผู้ใช้ Gemini คิดในรูปแบบนี้อยู่แล้ว หน้านี้แค่ทำให้มันชัดเจนขึ้น
GEMINI.md
บริบท
Gemini ทำตัวยังไง
MCP
ช่องทางสื่อสาร
วิธีที่มันเอื้อมไปหยิบ
Maguyva
ข้อเท็จจริงของโค้ดเบส
สิ่งที่มันมองเห็น
GEMINI.md บอก Gemini ว่าต้องทำงานยังไง
Maguyva มอบสิ่งที่ใช้เริ่มทำงานได้ให้ Gemini
เฉพาะสำหรับ Gemini อ้างอิงจากกราฟการเรียกใช้จริง ไม่ใช่การ grep ของ Gemini
// workflow 01
gemini> PaymentClient → BillingClient เปลี่ยนชื่อ graph::callers(PaymentClient) 12 การอ้างอิง ครอบคลุม 7 แพ็กเกจ graph::importers(src/payments/client.ts) 9 ผู้นำเข้า graph::extends(PaymentClient) 2 คลาสลูก (RetryClient, MockClient) → Gemini เสนอแผนย้าย 21 จุดแก้ไข พร้อมรายการไฟล์แบบอินไลน์ [exit 0]
Gemini ถาม Maguyva หาผู้ที่พึ่งพาก่อนที่จะเริ่มแก้ไข รายการย้ายที่ได้กลับมาอ้างอิงจากกราฟจริง ไม่ใช่จากความจำของ Gemini
// workflow 02
gemini> normalizePhoneNumber จัดการ E.164 ยังไง? semantic::query("normalize phone E.164") src/util/phone.ts:88 normalizePhoneNumber() ← ของจริง test/util/phone.spec.ts:14 jest.mock(...) ← stub [exit 0]
ชื่อบอกอะไรไม่ได้เสมอไป mock บดบังโค้ดจริงได้ Maguyva จัดอันดับการอิมพลีเมนต์จริงให้อยู่เหนือ test mock
// workflow 03
gemini> อะไรเรียก QueueDispatcher.publish บ้าง? graph::callers(QueueDispatcher.publish) 3 ครั้งใน src/billing/* 1 ครั้งใน src/audit/* 1 ครั้งใน src/notifications/* [exit 0]
จุดเรียกใช้ข้ามแพ็กเกจโผล่ขึ้นมาให้เห็นทันที การเปลี่ยนแปลงอ้างอิงจากผู้นำเข้าจริง ไม่ใช่การ grep ของ Gemini
สามขั้นตอน แผน Free: รีโพซิทอรี 3 แห่ง, บรรทัดที่ทำดัชนีสูงสุด 50,000 บรรทัด ไม่ต้องใช้บัตร
// step 01
เลือกรีโพที่คุณรู้จักดี เพื่อให้ตรวจสอบคำตอบได้
// step 02
// ~/.gemini/settings.json
{
"mcpServers": {
"maguyva": {
"httpUrl": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer <your-key>"
}
}
}
}// step 03
อย่าเริ่มจากทั้งบริษัทของคุณ เริ่มจากรีโพเดียวและคำถามเดียวที่ตรวจสอบได้