# AGENTS.md memberi tahu Codex cara bekerja. Bukan apa yang ada di sana.

Canonical source: https://maguyva.ai/id/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 menetapkan kesepakatan kerja. MCP memungkinkan Codex menjangkau tool. Maguyva adalah server MCP yang memberi Codex peta repo Anda yang bisa di-query, jadi edit pertama bukan tebakan soal struktur file.

> AGENTS.md adalah kesepakatannya. MCP adalah salurannya. Maguyva adalah petanya.

## Stack berlapis

Empat gagasan. Masing-masing menjalankan satu tugas.

### AGENTS.md

Bagaimana Codex seharusnya berperilaku di repo ini.

### MCP

Bagaimana Codex menjangkau tool dan konteks eksternal.

### Maguyva

Server MCP yang mengembalikan fakta repo yang berlandaskan bukti nyata.

### Workspace, bukan pengguna

Tidak ada biaya terpisah per agen. [Lihat harga](https://maguyva.ai/id/pricing)

## AGENTS.md adalah kesepakatan kerja. Pakai itu.

Instruksi yang bersifat permanen ada di [`AGENTS.md`](https://developers.openai.com/codex/guides/agents-md). Ini tempat yang tepat untuk:

- Perintah build, test, dan lint yang harus dijalankan Codex.
- Guardrail “selalu lakukan X / jangan pernah lakukan Y” yang dibatasi ke satu direktori.
- Konvensi naming dan preferensi refactor.
- Rujukan ke log keputusan kanonis dan catatan arsitektur.

Buat singkat. Batasi cakupannya. Commit.

Tapi `AGENTS.md` memang tidak pernah dirancang jadi index yang bisa di-query untuk setiap symbol, file, dan call site di repo Anda.

## Di mana AGENTS.md sendirian jadi statis saat skalanya membesar

Empat mode kegagalan, satu per kartu.

### // kesepakatan bukan index

Memberi tahu Codex *cara bekerja* tidak memberi tahu *apa yang ada*. Edit pertama di package yang belum dikenal adalah tebakan soal path file dan nama fungsi. AGENTS.md tidak bisa mendaftar setiap symbol, dan Anda pun tidak akan mau itu terjadi.

### // dokumennya ngedrift dari kodenya

Blok AGENTS.md yang mendeskripsikan topologi queue Anda itu benar sampai seseorang memperkenalkan consumer baru. Kodenya sekarang jadi sumber kebenaran, dan dokumennya basi dengan percaya diri. Codex membaca yang salah.

### // rename itu masalah graf

“Apa yang mereferensikan class ini?” tidak bisa dijawab dari file markdown. Codex akhirnya grep-lalu-berdoa di seluruh monorepo, atau minta Anda paste call site ke chat.

### // context window itu tidak gratis

Menjejali AGENTS.md sampai Codex “tahu cukup” menghabiskan token yang seharusnya dipakai untuk reasoning. Melewati beberapa KB, Anda menukar kualitas jawaban dengan volume konteks statis.

## Bagaimana ketiga lapisan ini saling terhubung

Pengguna Codex sudah berpikir dengan pola ini. Halaman ini seharusnya membuatnya jelas.

- **AGENTS.md**: kesepakatan (bagaimana Codex berperilaku)
- **MCP**: salurannya (bagaimana ia menjangkau)
- **Maguyva**: fakta codebase (apa yang ia lihat)

- **AGENTS.md**: bagaimana Codex berperilaku di repo ini.
- **MCP**: bagaimana Codex menjangkau tool dan konteks. [(spesifikasi)](https://modelcontextprotocol.io/docs/getting-started/intro)
- **Maguyva**: apa yang dilihat Codex saat mengajukan pertanyaan ke codebase-nya. Pencarian semantik, AST, graf, dan teks dikembalikan dengan path file dan nomor baris.

> AGENTS.md memberi tahu Codex *cara bekerja*.
> Maguyva memberi Codex *sesuatu untuk mulai bekerja*.

## Tiga workflow

Khusus untuk Codex. Berlandaskan graf panggilan yang sesungguhnya, bukan grep Codex.

### 01. Rename class yang dipakai bersama, temukan dulu semua yang bergantung padanya

```text
codex> rename PaymentClient → BillingClient

graph::callers(PaymentClient)            12 referensi di 7 package
graph::importers(src/payments/client.ts)  9 importer
graph::extends(PaymentClient)             2 subclass (RetryClient, MockClient)

→ Codex mengusulkan migrasi 21 edit lengkap dengan daftar file-nya.
[exit 0]
```

Codex bertanya ke Maguyva soal dependent-nya *sebelum* mulai mengedit. Daftar migrasinya kembali berlandaskan graf yang sesungguhnya, bukan ingatan Codex.

### 02. Temukan implementasi sesungguhnya, bukan stub test

```text
codex> bagaimana normalizePhoneNumber menangani E.164?

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

Nama itu bisa menipu. Mock menutupi kode asli. Maguyva meranking implementasi asli di atas mock test.

### 03. Cek cakupan dampak sebelum melakukan refactor

```text
codex> apa yang memanggil QueueDispatcher.publish?

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

Call-site lintas package langsung muncul inline. Diff-nya berlandaskan importer sungguhan, bukan grep Codex.

## Setup di Codex CLI

Tiga langkah. Paket Free: 3 repository, Hingga 50K baris repo terindeks, tanpa kartu kredit.

### 01. Indeks repo di maguyva.ai

Pilih repo yang Anda kenal baik, supaya bisa memverifikasi jawabannya.

### 02. Tambahkan Maguyva sebagai server MCP di konfigurasi Codex Anda

`~/.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. Ajukan satu pertanyaan yang jawabannya sudah Anda tahu

Jangan mulai dari seluruh perusahaan Anda. Mulai dari satu repo dan satu pertanyaan yang bisa diverifikasi.

## Indeks satu repo yang sudah Anda kenal.

Hubungkan Codex lewat MCP. Ajukan satu pertanyaan yang jawabannya bisa Anda verifikasi.
