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

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

Agentit eivät maksa käyttäjäpaikoista. 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.
  • Osoittimille 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 ajautuu pois koodista

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.

// kontekstiikkunat 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

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

Löydä oikea toteutus, ei testitynkää

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

Tarkista vaikutusalue ennen refaktorointia

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.

Asennus Gemini CLI:ssä

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

  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 <your-key>"
          }
        }
      }
    }
  3. // step 03

    Kysy yksi kysymys, jonka vastauksen jo tiedät

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