// kontext
GEMINI.md
Hur Gemini ska uppträda i det här repot.
För Gemini CLI-användare
GEMINI.md sätter arbetskontexten. MCP låter Gemini nå ut efter verktyg. Maguyva är MCP-servern som ger Gemini en sökbar karta över ditt repo, så att den första ändringen inte blir en gissning om filstrukturen.
Free-nivå: 3 repositorier, Upp till 50K indexerade repo-rader, inget kort.
GEMINI.md är kontexten. MCP är kanalen. Maguyva är kartan.Fyra idéer. Var och en gör sitt jobb.
// kontext
Hur Gemini ska uppträda i det här repot.
// transport
Hur Gemini når externa verktyg och kontext.
// kodbas
MCP-servern som returnerar förankrade fakta om repot.
// vem betalar
Agenter betalar inte för platser. Se priser
Beständiga instruktioner hör hemma i GEMINI.md. Det är rätt plats för:
Håll det kortfattat. Avgränsa det. Committa det.
Men GEMINI.md var aldrig tänkt att vara ett sökbart index över varje symbol, fil och anropsplats i ditt repo.
Fyra sätt det brister på, ett per kort.
Att tala om för Gemini hur den ska arbeta talar inte om vad som finns. Den första ändringen i ett okänt paket blir en gissning om filsökvägar och funktionsnamn. GEMINI.md kan inte lista varje symbol, och det vill du inte heller att den ska.
Ett GEMINI.md-block som beskriver din kötopologi stämmer tills någon inför en ny konsument. Koden är nu sanningen och dokumentationen är övertygande föråldrad. Gemini läser fel version.
”Vad refererar till den här klassen?” går inte att besvara från en markdown-fil. Gemini tvingas antingen grep:a och hoppas i hela monorepot eller be dig klistra in anropsplatser i chatten.
Ett stort fönster är inte samma sak som ett sökbart index. Att fylla GEMINI.md tills Gemini ”kan tillräckligt” byter ändå bort resonemangsbudget mot statisk kontextvolym.
Gemini-användare tänker redan i den här formen. Sidan bör göra det uppenbart.
GEMINI.md
kontext
hur Gemini uppträder
MCP
kanalen
hur den når ut
Maguyva
kodbasfakta
vad den ser
GEMINI.md talar om hur Gemini ska arbeta.
Maguyva ger Gemini något att utgå från.
Specifikt för Gemini. Förankrat i den faktiska anropsgrafen, inte grep i Gemini.
// workflow 01
gemini> döp om PaymentClient → BillingClient graph::callers(PaymentClient) 12 referenser i 7 paket graph::importers(src/payments/client.ts) 9 importerare graph::extends(PaymentClient) 2 subklasser (RetryClient, MockClient) → Gemini föreslår en migrering med 21 ändringar, med fillistan direkt i svaret. [exit 0]
Gemini frågar Maguyva om beroenden innan den börjar redigera. Migreringslistan kommer tillbaka förankrad i den faktiska grafen, inte i vad Gemini minns.
// workflow 02
gemini> hur hanterar normalizePhoneNumber E.164? semantic::query("normalize phone E.164") src/util/phone.ts:88 normalizePhoneNumber() ← verklig impl test/util/phone.spec.ts:14 jest.mock(...) ← stub [exit 0]
Namn ljuger. Mockar skuggar verklig kod. Maguyva rankar den verkliga implementationen över testmocken.
// workflow 03
gemini> vad anropar QueueDispatcher.publish? graph::callers(QueueDispatcher.publish) 3 i src/billing/* 1 i src/audit/* 1 i src/notifications/* [exit 0]
Paketöverskridande anropsplatser dyker upp direkt i flödet. Diffen är förankrad i verkliga importerare, inte grep i Gemini.
Tre steg. Free-nivå: 3 repositorier, Upp till 50K indexerade repo-rader, inget kort.
// step 01
Välj ett du känner väl, så att du kan verifiera svaren.
// step 02
// ~/.gemini/settings.json
{
"mcpServers": {
"maguyva": {
"httpUrl": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer <your-key>"
}
}
}
}// step 03
Börja inte med hela ditt företag. Börja med ett repo och en verifierbar fråga.