# AGENTS.md forteller Codex hvordan den skal jobbe. Ikke hva som finnes.

Canonical source: https://maguyva.ai/nb/for-codex

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

AGENTS.md setter samarbeidsavtalen. MCP lar Codex strekke seg etter verktøy. Maguyva er MCP-serveren som gir Codex et søkbart kart over repoet ditt, slik at den første endringen ikke er en gjetning om filstrukturen.

> AGENTS.md er avtalen. MCP er kanalen. Maguyva er kartet.

## Den lagdelte stacken

Fire ideer. Hver gjør én jobb.

### AGENTS.md

Hvordan Codex skal oppføre seg på dette repoet.

### MCP

Hvordan Codex strekker seg etter eksterne verktøy og kontekst.

### Maguyva

MCP-serveren som gir forankrede repo-fakta.

### Arbeidsområder, ikke lisenser

Agenter utløser ingen lisenskostnader. [Se priser](https://maguyva.ai/nb/pricing)

## AGENTS.md er en samarbeidsavtale. Bruk den.

Vedvarende instruksjoner hører hjemme i [`AGENTS.md`](https://developers.openai.com/codex/guides/agents-md). Det er riktig sted for:

- Bygge-, test- og lint-kommandoer Codex skal kjøre.
- “Gjør alltid X / aldri Y”-regler avgrenset til en mappe.
- Navnekonvensjoner og refaktoreringspreferanser.
- Henvisninger til de kanoniske beslutningsloggene og arkitekturnotatene.

Hold det kortfattet. Avgrens det. Commit det.

Men `AGENTS.md` ble aldri designet til å være en søkbar indeks over hvert symbol, hver fil og hvert kallsted i repoet ditt.

## Hvor AGENTS.md alene blir statisk i stor skala

Fire feilmoduser, én per kort.

### // avtaler er ikke en indeks

Å fortelle Codex *hvordan den skal jobbe*, forteller den ikke *hva som finnes*. Den første endringen i en ukjent pakke er en gjetning om filbaner og funksjonsnavn. AGENTS.md kan ikke liste opp hvert symbol, og det ville du heller ikke ønsket.

### // dokumentet kommer ut av takt med koden

En AGENTS.md-blokk som beskriver kø-topologien din, stemmer helt til noen introduserer en ny konsument. Koden er nå sannheten, og dokumentet er selvsikkert foreldet. Codex leser feil kilde.

### // omdøping er et grafproblem

«Hva refererer til denne klassen?» kan ikke besvares fra en markdown-fil. Codex må enten grep-og-håpe på tvers av monorepoet eller be deg lime inn kallsteder i chatten.

### // kontekstvinduer er ikke gratis

Å stappe AGENTS.md til Codex «vet nok» spiser tokens som burde gå til resonnering. Forbi noen få KB bytter du bort svarkvalitet mot statisk kontekstvolum.

## Hvordan de tre lagene henger sammen

Codex-brukere tenker allerede i denne formen. Siden bør gjøre det åpenbart.

- **AGENTS.md**: avtaler (hvordan Codex oppfører seg)
- **MCP**: kanalen (hvordan den når verktøyene)
- **Maguyva**: kodebasefakta (hva den ser)

- **AGENTS.md**: hvordan Codex oppfører seg på dette repoet.
- **MCP**: hvordan Codex strekker seg etter verktøy og kontekst. [(spesifikasjon)](https://modelcontextprotocol.io/docs/getting-started/intro)
- **Maguyva**: hva Codex ser når den stiller kodebasen et spørsmål. Semantisk søk, AST-søk, grafsøk og tekstsøk levert med filbaner og linjenumre.

> AGENTS.md forteller Codex *hvordan den skal jobbe*.
> Maguyva gir Codex *noe å jobbe ut fra*.

## Tre arbeidsflyter

Codex-spesifikke. Forankret i den faktiske kallgrafen, ikke Codex' grep.

### 01. Omdøp en delt klasse, finn all avhengig kode først

```text
codex> omdøp PaymentClient → BillingClient

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

→ Codex foreslår en migrering med 21 endringer og fillisten direkte i svaret.
[exit 0]
```

Codex spør Maguyva om avhengig kode *før* den begynner å redigere. Migreringslisten kommer tilbake forankret i den faktiske grafen, ikke Codex' hukommelse.

### 02. Finn den faktiske implementasjonen, ikke test-stubben

```text
codex> hvordan håndterer normalizePhoneNumber E.164?

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

Navn lyver. Mocks skygger for ekte kode. Maguyva rangerer den ekte implementasjonen over test-mocken.

### 03. Sjekk påvirkningsradiusen før en refaktorering

```text
codex> hvilken kode kaller QueueDispatcher.publish?

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

Kallsteder på tvers av pakker dukker opp direkte. Diffen er forankret i faktiske importører, ikke Codex' grep.

## Oppsett i Codex CLI

Tre steg. Free-planen: 3 repoer, Opptil 50K indekserte kodelinjer, uten kredittkort.

### 01. Indekser et repo på maguyva.ai

Velg ett du kjenner godt, slik at du kan verifisere svarene.

### 02. Legg til Maguyva som en MCP-server i Codex-konfigurasjonen din

`~/.codex/config.toml`

```text
export MAGUYVA_API_KEY=mgv_xxxx
codex mcp add maguyva --url https://maguyva.tools/mcp --bearer-token-env-var MAGUYVA_API_KEY
```

```toml
[mcp_servers.maguyva]
url = "https://maguyva.tools/mcp"
bearer_token_env_var = "MAGUYVA_API_KEY"
```

### 03. Still ett spørsmål du allerede vet svaret på

Ikke start med hele selskapet ditt. Start med ett repo og ett verifiserbart spørsmål.

## Indekser ett repo du allerede kjenner.

Koble Codex til over MCP. Still ett spørsmål du kan verifisere svaret på.
