// konteksti
GEMINI.md
Miten Geminin tulisi käyttäytyä tässä repossa.
Gemini CLI -käyttäjille
GEMINI.md asettaa työkontekstin. MCP antaa Geminille pääsyn työkaluihin. Maguyva on MCP-palvelin, joka antaa Geminille kysyttävän kartan reposta, joten ensimmäinen muokkaus ei ole arvaus tiedostorakenteesta.
Free-taso: 3 repositoriota, Enintään 50 000 indeksoitua repo-riviä, ei korttia.
GEMINI.md on konteksti. MCP on kanava. Maguyva on kartta.Neljä ideaa. Jokainen hoitaa yhden tehtävän.
// konteksti
Miten Geminin tulisi käyttäytyä tässä repossa.
// siirtotie
Miten Gemini tavoittaa ulkoiset työkalut ja kontekstin.
// koodikanta
MCP-palvelin, joka palauttaa ankkuroituja repofaktoja.
// kuka maksaa
Agentit eivät maksa käyttäjäpaikoista. Katso hinnoittelu
Pysyvät ohjeet kuuluvat tiedostoon GEMINI.md. Se on oikea paikka:
Pidä se tiiviinä. Rajaa se. Committaa se.
Mutta GEMINI.md-tiedostoa ei ole koskaan suunniteltu kysyttäväksi indeksiksi jokaisesta symbolista, tiedostosta ja kutsupaikasta repossasi.
Neljä vikaantumistapaa, yksi per kortti.
Kertominen Geminille miten työskennellä ei kerro sille, mitä on olemassa. Ensimmäinen muokkaus tuntemattomassa paketissa on arvaus tiedostopoluista ja funktioiden nimistä. GEMINI.md ei voi listata jokaista symbolia, eikä sen pitäisikään.
GEMINI.md-lohko, joka kuvaa jonorakennettasi, on oikein, kunnes joku ottaa käyttöön uuden kuluttajan. Koodi on nyt totuuden lähde ja dokumentti on itsevarmasti vanhentunut. Gemini lukee väärän.
“Mikä viittaa tähän luokkaan?” ei ole vastattavissa markdown-tiedostosta. Gemini joko grep-ja-rukoilee koko monorepon läpi tai pyytää sinua liittämään kutsupaikat chattiin.
Iso ikkuna ei ole sama kuin kysyttävä indeksi. GEMINI.md:n lataaminen kunnes Gemini “tietää tarpeeksi” vaihtaa silti päättelybudjettia staattiseen kontekstimäärään.
Gemini-käyttäjät ajattelevat jo tässä muodossa. Sivun pitäisi tehdä siitä ilmeinen.
GEMINI.md
konteksti
miten Gemini käyttäytyy
MCP
kanava
miten se tavoittaa
Maguyva
koodikannan faktat
mitä se näkee
GEMINI.md kertoo Geminille miten työskennellä.
Maguyva antaa Geminille jotain, mistä lähteä liikkeelle.
Gemini-kohtainen. Ankkuroitu oikeaan kutsugraafiin, ei Geminin grepiin.
// workflow 01
gemini> rename PaymentClient → BillingClient graph::callers(PaymentClient) 12 references across 7 packages graph::importers(src/payments/client.ts) 9 importers graph::extends(PaymentClient) 2 subclasses (RetryClient, MockClient) → Gemini proposes a 21-edit migration with the file list inline. [exit 0]
Kaksoset kysyvät Maguyva huollettaville ennen kuin se alkaa muokata. Muuttoluettelo perustuu todelliseen kaavioon, ei Kaksosten muistiin.
// workflow 02
gemini> how does normalizePhoneNumber handle E.164? semantic::query("normalize phone E.164") src/util/phone.ts:88 normalizePhoneNumber() ← real impl test/util/phone.spec.ts:14 jest.mock(...) ← stub [exit 0]
Nimet valehtelevat. Mockit peittävät oikean koodin. Maguyva järjestää oikean toteutuksen testimockin yläpuolelle.
// workflow 03
gemini> what calls QueueDispatcher.publish? graph::callers(QueueDispatcher.publish) 3 in src/billing/* 1 in src/audit/* 1 in src/notifications/* [exit 0]
Pakettirajat ylittävät kutsupaikat tulevat esiin suoraan. Diffi on ankkuroitu oikeisiin tuojiin, ei Geminin grepiin.
Kolme vaihetta. Free-taso: 3 repositoriota, Enintään 50 000 indeksoitua repo-riviä, ei korttia.
// step 01
Valitse sellainen, jonka tunnet hyvin, jotta voit tarkistaa vastaukset.
// step 02
// ~/.gemini/settings.json
{
"mcpServers": {
"maguyva": {
"httpUrl": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer <your-key>"
}
}
}
}// step 03
Älä aloita koko yrityksestäsi. Aloita yhdestä reposta ja yhdestä todennettavasta kysymyksestä.