Spring til indhold

Til Gemini CLI-brugere

GEMINI.md fortæller Gemini dine regler.
Ikke din kode.

GEMINI.md fastlægger arbejdskonteksten. MCP lader Gemini række ud efter værktøjer. Maguyva er MCP-serveren, der giver Gemini et søgbart kort over dit repo, så den første rettelse ikke er et gæt på filstrukturen.

Free-niveau: 3 repos, Op til 50K indekserede repo-linjer, intet kort.

GEMINI.md er konteksten. MCP er kanalen. Maguyva er kortet.

Det lagdelte stack

Fire idéer. Hver løser én opgave.

// kontekst

GEMINI.md

Hvordan Gemini bør opføre sig på dette repo.

// transport

MCP

Hvordan Gemini rækker ud efter eksterne værktøjer og kontekst.

// kodebase

Maguyva

MCP-serveren, der leverer forankrede repo-fakta.

// hvem betaler

Arbejdsområder, ikke brugerpladser

Agenter betaler ikke for brugerpladser. Se priser

GEMINI.md er en arbejdskontekst. Brug den.

Vedvarende instruktioner hører hjemme i GEMINI.md. Det er det rette sted til:

  • Build-, test- og lint-kommandoer, Gemini bør køre.
  • “Gør altid X / gør aldrig Y”-sikkerhedsregler afgrænset til en mappe.
  • Navngivningskonventioner og refaktoreringspræferencer.
  • Henvisninger til de kanoniske beslutningslogge og arkitekturnoter.

Hold den kortfattet. Afgræns den. Commit den.

Men GEMINI.md blev aldrig designet til at være et søgbart indeks over hvert symbol, hver fil og hvert kaldested i dit repo.

Hvor GEMINI.md alene løber tør

Fire svigttilstande, én pr. kort.

// kontekst er ikke et indeks

At fortælle Gemini hvordan den skal arbejde fortæller den ikke hvad der findes. Den første rettelse på en ukendt pakke er et gæt på filstier og funktionsnavne. GEMINI.md kan ikke opremse hvert symbol, og det ville du heller ikke ønske.

// dokumentet driver væk fra koden

En GEMINI.md-blok, der beskriver din kø-topologi, er korrekt, indtil nogen introducerer en ny consumer. Koden er nu den eneste sandhed, og dokumentet er selvsikkert forældet. Gemini læser det forkerte.

// omdøbning er et grafproblem

“Hvad refererer til denne klasse?” kan ikke besvares ud fra en markdown-fil. Gemini enten grep'er-og-håber sig gennem monorepoet eller beder dig indsætte kaldesteder i chatten.

// kontekstvinduer er ikke gratis

Et stort kontekstvindue er ikke det samme som et søgbart indeks. At indlæse GEMINI.md indtil Gemini “ved nok” bytter stadig ræsonnementsbudget for statisk kontekstvolumen.

Hvordan de tre lag hænger sammen

Gemini-brugere tænker allerede i denne form. Siden bør gøre det tydeligt.

GEMINI.md

kontekst

hvordan Gemini opfører sig

MCP

kanalen

hvordan den rækker ud

Maguyva

kodebasefakta

hvad den ser

  • GEMINI.md hvordan Gemini opfører sig på dette repo.
  • MCP hvordan Gemini rækker ud efter værktøjer og kontekst. (spec)
  • Maguyva hvad Gemini ser, når den stiller kodebasen et spørgsmål. Semantisk, AST-, graf- og tekstsøgning leveret med filstier og linjenumre.

GEMINI.md fortæller Gemini hvordan den skal arbejde.

Maguyva giver Gemini noget at arbejde ud fra.

Tre workflows

Gemini-specifikke. Forankret i den faktiske kaldgraf — ikke Geminis grep.

// workflow 01

Omdøb en delt klasse, find alle afhængige først

gemini> omdøb PaymentClient → BillingClient

graph::callers(PaymentClient)            12 referencer på tværs af 7 pakker
graph::importers(src/payments/client.ts)  9 importører
graph::extends(PaymentClient)             2 underklasser (RetryClient, MockClient)

 Gemini foreslår en migrering med 21 rettelser med fillisten direkte i svaret.
[exit 0]

Gemini spørger Maguyva om afhængige før den begynder at rette. Migreringslisten kommer tilbage forankret i den faktiske graf — ikke Geminis erindring.

// workflow 02

Find den rigtige implementering, ikke teststubben

gemini> hvordan håndterer normalizePhoneNumber E.164?

semantic::query("normalize phone E.164")
  src/util/phone.ts:88   normalizePhoneNumber()   ← rigtig impl.
  test/util/phone.spec.ts:14  jest.mock(...)      ← stub
[exit 0]

Navne lyver. Mocks overskygger rigtig kode. Maguyva rangerer den rigtige implementering over test-mock'en.

// workflow 03

Tjek blast radius før en refaktorering

gemini> hvad kalder QueueDispatcher.publish?

graph::callers(QueueDispatcher.publish)
  3 i src/billing/*    1 i src/audit/*    1 i src/notifications/*
[exit 0]

Kaldesteder på tværs af pakker dukker op direkte. Diffen er forankret i de rigtige importører — ikke Geminis grep.

Opsætning i Gemini CLI

Tre trin. Free-niveau: 3 repos, Op til 50K indekserede repo-linjer, intet kort.

  1. // step 01

    Indekser et repo på maguyva.ai

    Vælg ét, du kender godt, så du kan verificere svarene.

  2. // step 02

    Tilføj Maguyva som en MCP-server i dine Gemini CLI-indstillinger

    // ~/.gemini/settings.json
    {
      "mcpServers": {
        "maguyva": {
          "httpUrl": "https://maguyva.tools/mcp",
          "headers": {
            "Authorization": "Bearer <your-key>"
          }
        }
      }
    }
  3. // step 03

    Stil ét spørgsmål, du allerede kender svaret på

    Start ikke med hele din virksomhed. Start med ét repo og ét verificerbart spørgsmål.