// ngữ cảnh
GEMINI.md
Gemini nên hành xử thế nào trên repo này.
Dành cho người dùng Gemini CLI
GEMINI.md thiết lập ngữ cảnh làm việc. MCP cho phép Gemini vươn tới các công cụ. Maguyva là MCP server cho Gemini một bản đồ có thể truy vấn của repo bạn, để lần chỉnh sửa đầu tiên không phải là một phỏng đoán về cấu trúc tệp.
Gói Free: 3 repository, Tối đa 50K dòng repo đã index, không cần thẻ.
GEMINI.md là ngữ cảnh. MCP là kênh truyền tải. Maguyva là bản đồ.Bốn ý tưởng. Mỗi ý tưởng làm một việc.
// ngữ cảnh
Gemini nên hành xử thế nào trên repo này.
// kênh truyền tải
Cách Gemini vươn tới các công cụ và ngữ cảnh bên ngoài.
// codebase
MCP server trả về các dữ kiện repo có căn cứ.
// ai trả tiền
Tác nhân không phải trả tiền theo ghế. Xem bảng giá
Các chỉ dẫn lâu dài nên nằm trong GEMINI.md. Đây là nơi đúng cho:
Giữ nó ngắn gọn. Giới hạn phạm vi. Commit nó.
Nhưng GEMINI.md chưa bao giờ được thiết kế để trở thành một chỉ mục có thể truy vấn của mọi ký hiệu, tệp, và call site trong repo của bạn.
Bốn kiểu thất bại, mỗi kiểu một thẻ.
Cho Gemini biết cách làm việc không cho nó biết những gì đang tồn tại. Lần chỉnh sửa đầu tiên trên một package xa lạ là một phỏng đoán về đường dẫn tệp và tên hàm. GEMINI.md không thể liệt kê mọi ký hiệu, và bạn cũng không muốn nó làm vậy.
Một đoạn GEMINI.md mô tả cấu trúc hàng đợi của bạn đúng cho đến khi ai đó thêm một consumer mới. Mã nguồn giờ là nguồn sự thật và tài liệu đã lỗi thời một cách tự tin. Gemini đọc nhầm cái sai.
“Cái gì tham chiếu tới class này?” không thể trả lời được từ một tệp markdown. Gemini hoặc grep-rồi-cầu-may trên toàn monorepo, hoặc yêu cầu bạn dán call site vào chat.
Một cửa sổ lớn không giống với một chỉ mục có thể truy vấn. Nạp GEMINI.md cho đến khi Gemini “biết đủ” vẫn đánh đổi ngân sách suy luận để lấy khối lượng ngữ cảnh tĩnh.
Người dùng Gemini đã suy nghĩ theo hình mẫu này rồi. Trang này chỉ cần làm nó rõ ràng.
GEMINI.md
ngữ cảnh
cách Gemini hành xử
MCP
kênh truyền tải
cách nó vươn tới
Maguyva
dữ kiện codebase
những gì nó thấy
GEMINI.md cho Gemini biết cách làm việc.
Maguyva cho Gemini thứ gì đó để làm việc dựa vào.
Riêng cho Gemini. Có căn cứ vào đồ thị lệnh gọi thực tế, không phải grep của Gemini.
// workflow 01
gemini> đổi tên PaymentClient → BillingClient graph::callers(PaymentClient) 12 tham chiếu trên 7 package graph::importers(src/payments/client.ts) 9 importer graph::extends(PaymentClient) 2 lớp con (RetryClient, MockClient) → Gemini đề xuất một migration gồm 21 chỉnh sửa kèm danh sách tệp ngay trong dòng kết quả. [exit 0]
Gemini hỏi Maguyva về các phần phụ thuộc trước khi nó bắt đầu chỉnh sửa. Danh sách migration trả về có căn cứ vào đồ thị thực tế, không phải trí nhớ của Gemini.
// workflow 02
gemini> normalizePhoneNumber xử lý E.164 như thế nào? semantic::query("normalize phone E.164") src/util/phone.ts:88 normalizePhoneNumber() ← cài đặt thực test/util/phone.spec.ts:14 jest.mock(...) ← stub [exit 0]
Tên gọi có thể lừa dối. Mock che khuất mã thực. Maguyva xếp hạng cài đặt thực cao hơn test mock.
// workflow 03
gemini> điều gì gọi QueueDispatcher.publish? graph::callers(QueueDispatcher.publish) 3 in src/billing/* 1 in src/audit/* 1 in src/notifications/* [exit 0]
Call-site xuyên package hiện ra ngay trong dòng kết quả. Diff có căn cứ vào các importer thực tế, không phải grep của Gemini.
Ba bước. Gói Free: 3 repository, Tối đa 50K dòng repo đã index, không cần thẻ.
// step 01
Chọn một repo bạn biết rõ, để bạn có thể xác minh các câu trả lời.
// step 02
// ~/.gemini/settings.json
{
"mcpServers": {
"maguyva": {
"httpUrl": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer <your-key>"
}
}
}
}// step 03
Đừng bắt đầu với toàn bộ công ty của bạn. Hãy bắt đầu với một repo và một câu hỏi có thể kiểm chứng.