# GEMINI.md talar om dina regler för Gemini. Inte din kod.

Canonical source: https://maguyva.ai/sv/for-gemini

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

GEMINI.md sätter arbetskontexten. MCP låter Gemini använda verktyg. Maguyva är MCP-servern som ger Gemini en sökbar karta över ditt repo, så att den första ändringen inte blir en gissning om filstrukturen.

> GEMINI.md är kontexten. MCP är kanalen. Maguyva är kartan.

## Stacken, lager för lager

Fyra idéer. Var och en gör sitt jobb.

### GEMINI.md

Hur Gemini ska uppträda i det här repot.

### MCP

Hur Gemini når externa verktyg och kontext.

### Maguyva

MCP-servern som returnerar förankrade fakta om repot.

### Arbetsytor, inte användarlicenser

Agenter medför inga separata licensavgifter. [Se priser](https://maguyva.ai/sv/pricing)

## GEMINI.md är en arbetskontext. Använd den.

Beständiga instruktioner hör hemma i `GEMINI.md`. Det är rätt plats för:

- Bygg-, test- och lintkommandon som Gemini ska köra.
- “Gör alltid X / gör aldrig Y”-regler avgränsade till en katalog.
- Namngivningskonventioner och preferenser för refaktorering.
- Hänvisningar till de kanoniska beslutsloggarna och arkitekturanteckningarna.

Håll det kortfattat. Avgränsa det. Committa det.

Men `GEMINI.md` var aldrig tänkt att vara ett sökbart index över varje symbol, fil och anropsplats i ditt repo.

## När GEMINI.md ensamt inte räcker till

Fyra sätt det brister på, ett per kort.

### // kontext är inget index

Att tala om för Gemini *hur den ska arbeta* talar inte om *vad som finns*. Den första ändringen i ett okänt paket blir en gissning om filsökvägar och funktionsnamn. GEMINI.md kan inte lista varje symbol, och det vill du inte heller att den ska.

### // dokumentationen glider bort från koden

Ett GEMINI.md-block som beskriver din kötopologi stämmer tills någon inför en ny konsument. Koden är nu sanningen och dokumentationen låter säker men är föråldrad. Gemini läser fel version.

### // namnbyte är ett grafproblem

”Vad refererar till den här klassen?” går inte att besvara från en markdown-fil. Gemini tvingas antingen grep:a och hoppas i hela monorepot eller be dig klistra in anropsplatser i chatten.

### // kontextfönster är inte gratis

Ett stort fönster är inte samma sak som ett sökbart index. Att fylla GEMINI.md tills Gemini ”kan tillräckligt” byter ändå bort resonemangsbudget mot statisk kontextvolym.

## Så passar de tre lagren ihop

Gemini-användare tänker redan i den här formen. Sidan bör göra det uppenbart.

- **GEMINI.md**: kontext (hur Gemini uppträder)
- **MCP**: kanalen (hur den når ut)
- **Maguyva**: kodbasfakta (vad den ser)

- **GEMINI.md**: hur Gemini uppträder i det här repot.
- **MCP**: hur Gemini når verktyg och kontext. [(spec)](https://modelcontextprotocol.io/docs/getting-started/intro)
- **Maguyva**: vad Gemini ser när den ställer en fråga till kodbasen. Semantisk, AST-baserad, graf- och textsökning som returneras med filsökvägar och radnummer.

> GEMINI.md talar om *hur Gemini ska arbeta*.
> Maguyva ger Gemini *något att utgå från*.

## Tre arbetsflöden

Specifikt för Gemini. Förankrat i den faktiska anropsgrafen, inte grep i Gemini.

### 01. Döp om en delad klass, hitta alla beroenden först

```text
gemini> döp om PaymentClient → BillingClient

graph::callers(PaymentClient)            12 referenser i 7 paket
graph::importers(src/payments/client.ts)  9 importerare
graph::extends(PaymentClient)             2 subklasser (RetryClient, MockClient)

→ Gemini föreslår en migrering med 21 ändringar, med fillistan direkt i svaret.
[exit 0]
```

Gemini frågar Maguyva om beroenden *innan* den börjar redigera. Migreringslistan kommer tillbaka förankrad i den faktiska grafen, inte i vad Gemini minns.

### 02. Hitta den verkliga implementationen, inte teststubben

```text
gemini> hur hanterar normalizePhoneNumber E.164?

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

Namn ljuger. Mockar skuggar verklig kod. Maguyva rankar den verkliga implementationen över testmocken.

### 03. Kontrollera påverkansradien innan en refaktorering

```text
gemini> vad anropar QueueDispatcher.publish?

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

Paketöverskridande anropsplatser dyker upp direkt i flödet. Diffen är förankrad i verkliga importerare, inte grep i Gemini.

## Installation i Gemini CLI

Tre steg. Free-nivå: 3 repositorier, Upp till 50K indexerade repo-rader, inget kreditkort krävs.

### 01. Indexera ett repo på maguyva.ai

Välj ett du känner väl, så att du kan verifiera svaren.

### 02. Lägg till Maguyva som en MCP-server i inställningarna för Gemini CLI

`~/.gemini/settings.json`

```json
{
  "mcpServers": {
    "maguyva": {
      "httpUrl": "https://maguyva.tools/mcp",
      "headers": {
        "Authorization": "Bearer ${MAGUYVA_API_KEY}"
      }
    }
  }
}
```

### 03. Ställ en fråga vars svar du redan känner till

Börja inte med hela ditt företag. Börja med ett repo och en verifierbar fråga.

## Indexera ett repo du redan känner till.

Anslut Gemini via MCP. Ställ en fråga vars svar du kan verifiera.
