Siirry sisältöön

Gemini CLI -käyttäjille

GEMINI.md kertoo Geminille säännöt.
Ei koodiasi.

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.

Kerroksittainen pino

Neljä ideaa. Jokainen hoitaa yhden tehtävän.

// konteksti

GEMINI.md

Miten Geminin tulisi käyttäytyä tässä repossa.

// siirtotie

MCP

Miten Gemini tavoittaa ulkoiset työkalut ja kontekstin.

// koodikanta

Maguyva

MCP-palvelin, joka palauttaa ankkuroituja repofaktoja.

// kuka maksaa

Työtiloja, ei käyttäjäpaikkoja

Agenteista ei veloiteta käyttäjäpaikkamaksuja. Katso hinnoittelu

GEMINI.md on työkonteksti. Käytä sitä.

Pysyvät ohjeet kuuluvat tiedostoon GEMINI.md. Se on oikea paikka:

  • Build-, testi- ja lint-komennoille, jotka Geminin tulisi ajaa.
  • “Tee aina X / älä koskaan tee Y” -kaiteille, jotka on rajattu hakemistoon.
  • Nimeämiskonventioille ja refaktorointimieltymyksille.
  • Viittauksille kanonisiin päätöslokeihin ja arkkitehtuurimuistiinpanoihin.

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.

Missä pelkkä GEMINI.md loppuu kesken

Neljä vikaantumistapaa, yksi per kortti.

// konteksti ei ole indeksi

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.

// dokumentti ei enää vastaa koodia

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.

// nimeäminen on graafiongelma

“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.

// konteksti-ikkunat eivät ole ilmaisia

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.

Miten kolme kerrosta sopivat yhteen

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 miten Gemini käyttäytyy tässä repossa.
  • MCP miten Gemini tavoittaa työkalut ja kontekstin. (spesifikaatio)
  • Maguyva mitä Gemini näkee, kun se kysyy koodikannalta kysymyksen. Semanttinen, AST-, graafi- ja tekstihaku palautettuna tiedostopolkujen ja rivinumeroiden kera.

GEMINI.md kertoo Geminille miten työskennellä.

Maguyva antaa Geminille jotain, mistä lähteä liikkeelle.

Kolme työnkulkua

Gemini-kohtainen. Ankkuroitu oikeaan kutsugraafiin, ei Geminin grepiin.

// workflow 01

Nimeä jaettu luokka uudelleen, löydä ensin jokainen riippuvainen komponentti

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

Löydä oikea toteutus, ei testitynkää

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

Tarkista vaikutusalue ennen refaktorointia

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.

Asennus Gemini CLI:ssä

Kolme vaihetta. Free-taso: 3 repositoriota, Enintään 50 000 indeksoitua repo-riviä, ei luottokorttia.

  1. // step 01

    Indeksoi repo osoitteessa maguyva.ai

    Valitse sellainen, jonka tunnet hyvin, jotta voit tarkistaa vastaukset.

  2. // step 02

    Lisää Maguyva MCP-palvelimeksi Gemini CLI:n asetuksiin

    ~/.gemini/settings.json

    {
      "mcpServers": {
        "maguyva": {
          "httpUrl": "https://maguyva.tools/mcp",
          "headers": {
            "Authorization": "Bearer ${MAGUYVA_API_KEY}"
          }
        }
      }
    }
  3. // step 03

    Kysy yksi kysymys, jonka vastauksen jo tiedät

    Älä aloita koko yrityksestäsi. Aloita yhdestä reposta ja yhdestä todennettavasta kysymyksestä.