# GEMINI.md říká Gemini vaše pravidla. Ne váš kód.

Canonical source: https://maguyva.ai/cs/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 nastavuje pracovní kontext. MCP umožňuje Gemini sáhnout po nástrojích. Maguyva je MCP server, který Gemini dává prohledávatelnou mapu vašeho repozitáře, takže první edit není odhad struktury souborů.

> GEMINI.md je kontext. MCP je kanál. Maguyva je mapa.

## Vrstvená architektura

Čtyři myšlenky. Každá dělá jednu věc.

### GEMINI.md

Jak by se měl Gemini chovat v tomhle repozitáři.

### MCP

Jak Gemini sahá po externích nástrojích a kontextu.

### Maguyva

MCP server, který vrací podložená fakta o repozitáři.

### Za pracovní prostor, ne za uživatele

Za agenty se neúčtují samostatné licenční poplatky. [Zobrazit ceník](https://maguyva.ai/cs/pricing)

## GEMINI.md je pracovní kontext. Používejte ho.

Trvalé instrukce patří do `GEMINI.md`. Je to správné místo pro:

- Build, test a lint příkazy, které má Gemini spouštět.
- Pravidla typu „vždy dělej X / nikdy nedělej Y“, omezená na konkrétní adresář.
- Konvence pojmenování a preference pro refaktoring.
- Odkazy na kanonické záznamy rozhodnutí a architektonické poznámky.

Držte to stručné. Ohraničte to. Commitněte to.

Ale `GEMINI.md` nikdy nebyl navržený jako prohledávatelný index každého symbolu, souboru a místa volání ve vašem repozitáři.

## Kde samotný GEMINI.md přestává stačit

Čtyři selhání, jedno na kartu.

### // kontext není index

Říct Gemini, *jak má pracovat*, mu neřekne, *co existuje*. První edit v neznámém balíčku je odhad cest k souborům a názvů funkcí. GEMINI.md nemůže vypsat každý symbol, a ani byste to nechtěli.

### // dokumentace se odchyluje od kódu

Blok v GEMINI.md popisující topologii vaší fronty je správný, dokud někdo nepřidá nového konzumenta. Kód je teď zdrojem pravdy a dokumentace je sebejistě zastaralá. Gemini čte tu špatnou.

### // přejmenování je grafový problém

„Co odkazuje na tuhle třídu?“ se nedá zjistit z markdown souboru. Gemini buď grepuje napříč monorepem a doufá, nebo vás požádá, abyste vložili místa volání do chatu.

### // kontextová okna nejsou zadarmo

Velké okno není totéž co prohledávatelný index. Načítání GEMINI.md, dokud Gemini „neví dost“, pořád mění rozpočet na uvažování za statický objem kontextu.

## Jak tři vrstvy zapadají do sebe

Uživatelé Gemini už takhle přemýšlí. Stránka by to měla jen zviditelnit.

- **GEMINI.md**: kontext (jak se Gemini chová)
- **MCP**: kanál (jak sahá po věcech)
- **Maguyva**: fakta o codebase (co vidí)

- **GEMINI.md**: jak se Gemini chová v tomhle repozitáři.
- **MCP**: jak Gemini sahá po nástrojích a kontextu. [(specifikace)](https://modelcontextprotocol.io/docs/getting-started/intro)
- **Maguyva**: co Gemini vidí, když se codebase na něco zeptá. Sémantické, AST, grafové a textové vyhledávání s cestami k souborům a čísly řádků.

> GEMINI.md říká Gemini, *jak má pracovat*.
> Maguyva dává Gemini *něco, z čeho může vycházet*.

## Tři workflow

Specifické pro Gemini. Podložené skutečným grafem volání, ne grepem Gemini.

### 01. Přejmenujte sdílenou třídu, nejdřív najděte všechny závislé

```text
gemini> přejmenuj PaymentClient → BillingClient

graph::callers(PaymentClient)            12 odkazů napříč 7 balíčky
graph::importers(src/payments/client.ts)  9 importérů
graph::extends(PaymentClient)             2 podtřídy (RetryClient, MockClient)

→ Gemini navrhuje migraci o 21 editech se seznamem souborů přímo v textu.
[exit 0]
```

Gemini se Maguyva zeptá na závislý kód *předtím*, než začne editovat. Seznam migrace se vrátí podložený skutečným grafem, ne Geminiho vzpomínkou.

### 02. Najděte skutečnou implementaci, ne testovací stub

```text
gemini> jak normalizePhoneNumber zachází s E.164?

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

Jména lžou. Mocky zastiňují skutečný kód. Maguyva řadí skutečnou implementaci nad testovací mock.

### 03. Zkontrolujte rozsah dopadu před refaktoringem

```text
gemini> co volá QueueDispatcher.publish?

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

Místa volání napříč balíčky se objeví přímo v textu. Diff je podložený skutečnými importéry, ne grepem Gemini.

## Nastavení v Gemini CLI

Tři kroky. Free tarif: 3 repozitáře, Až 50K zaindexovaných řádků repa, bez kreditní karty.

### 01. Indexujte repozitář na maguyva.ai

Vyberte si repozitář, který dobře znáte, abyste mohli ověřit odpovědi.

### 02. Přidejte Maguyva jako MCP server do nastavení Gemini CLI

`~/.gemini/settings.json`

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

### 03. Položte jednu otázku, jejíž odpověď už znáte

Nezačínejte s celou firmou. Začněte jedním repozitářem a jednou ověřitelnou otázkou.

## Indexujte jeden repozitář, který už znáte.

Připojte Gemini přes MCP. Položte jednu otázku, jejíž odpověď dokážete ověřit.
