// 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 luottokorttia.
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
Agenteista ei veloiteta käyttäjäpaikkamaksuja. 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> nimeä uudelleen PaymentClient → BillingClient graph::callers(PaymentClient) 12 viittausta 7 paketissa graph::importers(src/payments/client.ts) 9 tuovaa kohdetta graph::extends(PaymentClient) 2 aliluokkaa (RetryClient, MockClient) → Gemini ehdottaa 21 muokkauksen migraatiota, jonka tiedostoluettelo näkyy suoraan vastauksessa. [exit 0]
Gemini kysyy Maguyva-palvelulta riippuvaisista komponenteista ennen muokkaamista. Migraatioluettelo perustuu todelliseen graafiin, ei Geminin muistiin.
// workflow 02
gemini> miten normalizePhoneNumber käsittelee E.164-muodon? semantic::query("normalize phone E.164") src/util/phone.ts:88 normalizePhoneNumber() ← oikea toteutus 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> mikä kutsuu QueueDispatcher.publish-metodia? 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 luottokorttia.
// 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 ${MAGUYVA_API_KEY}"
}
}
}
} // step 03
Älä aloita koko yrityksestäsi. Aloita yhdestä reposta ja yhdestä todennettavasta kysymyksestä.