Bagaimana Claude mengingat proyek Anda
Berikan Claude instruksi persisten dengan file CLAUDE.md atau AGENTS.md, dan biarkan Claude mengumpulkan pembelajaran secara otomatis dengan auto memory.
Setiap sesi Claude Code dimulai dengan context window yang segar. Dua mekanisme membawa pengetahuan lintas sesi:
- File CLAUDE.md: instruksi yang Anda tulis untuk memberikan Claude konteks persisten. Claude juga dapat membaca file
AGENTS.mdrepositori sebagai pengganti CLAUDE.md - Auto memory: catatan yang Claude tulis sendiri berdasarkan koreksi dan preferensi Anda
Halaman ini mencakup cara untuk:
- Menulis dan mengorganisir file CLAUDE.md
- Menggunakan AGENTS.md yang sudah ada sebagai instruksi proyek Anda
- Membatasi aturan ke tipe file tertentu dengan
.claude/rules/ - Mengonfigurasi auto memory agar Claude membuat catatan secara otomatis
- Troubleshoot ketika instruksi tidak diikuti
CLAUDE.md vs auto memory
Claude Code memiliki dua sistem memori yang saling melengkapi. Keduanya dimuat di awal setiap percakapan. Claude memperlakukan mereka sebagai konteks, bukan konfigurasi yang diberlakukan. Untuk memblokir suatu tindakan terlepas dari apa yang Claude putuskan, gunakan hook PreToolUse sebagai gantinya. Semakin spesifik dan ringkas instruksi Anda, semakin konsisten Claude mengikutinya.
| File CLAUDE.md | Auto memory | |
|---|---|---|
| Siapa yang menulisnya | Anda | Claude |
| Apa yang dikandungnya | Instruksi dan aturan | Pembelajaran dan pola |
| Cakupan | Proyek, pengguna, atau organisasi | Per repositori, dibagikan di seluruh worktrees |
| Dimuat ke dalam | Setiap sesi | Setiap sesi (200 baris pertama atau 25KB) |
| Gunakan untuk | Standar pengkodean, alur kerja, arsitektur proyek | Preferensi Anda, koreksi yang Anda berikan kepada Claude, konteks proyek yang Claude tidak dapat turunkan dari kode |
Gunakan file CLAUDE.md ketika Anda ingin memandu perilaku Claude. Auto memory memungkinkan Claude belajar dari koreksi Anda tanpa usaha manual.
Subagents juga dapat mempertahankan auto memory mereka sendiri. Lihat konfigurasi subagent untuk detail.
File CLAUDE.md
File CLAUDE.md adalah file markdown yang memberikan instruksi persisten kepada Claude untuk sebuah proyek, alur kerja pribadi Anda, atau seluruh organisasi Anda. Anda menulis file ini dalam teks biasa; Claude membacanya di awal setiap sesi. Jika repositori Anda menggunakan AGENTS.md sebagai gantinya, lihat AGENTS.md.
Kapan menambahkan ke CLAUDE.md
Perlakukan CLAUDE.md sebagai tempat Anda menuliskan hal-hal yang jika tidak ditulis harus Anda jelaskan ulang. Tambahkan ke file ini ketika:
- Claude membuat kesalahan yang sama untuk kedua kalinya
- Sebuah code review menemukan sesuatu yang seharusnya sudah diketahui Claude tentang codebase ini
- Anda mengetikkan koreksi atau klarifikasi yang sama di chat seperti yang Anda ketikkan pada sesi sebelumnya
- Anggota tim baru akan membutuhkan konteks yang sama agar dapat bekerja produktif
Batasi isinya pada fakta yang harus dipegang Claude di setiap sesi: perintah build, konvensi, tata letak proyek, aturan "selalu lakukan X". Jika sebuah entri merupakan prosedur multi-langkah atau hanya relevan untuk satu bagian codebase, pindahkan ke skill atau aturan dengan cakupan path sebagai gantinya. Ikhtisar ekstensi menjelaskan kapan menggunakan setiap mekanisme.
Memilih tempat untuk meletakkan file CLAUDE.md
File CLAUDE.md dapat berada di beberapa lokasi, masing-masing dengan cakupan yang berbeda. Tabel di bawah mencantumkannya dalam urutan pemuatan, dari cakupan terluas hingga yang paling spesifik, sehingga instruksi proyek muncul dalam konteks setelah instruksi pengguna.
| Cakupan | Lokasi | Tujuan | Contoh kasus penggunaan | Dibagikan dengan |
|---|---|---|---|---|
| Kebijakan terkelola | • macOS: /Library/Application Support/ClaudeCode/CLAUDE.md • Linux dan WSL: /etc/claude-code/CLAUDE.md • Windows: C:\Program Files\ClaudeCode\CLAUDE.md |
Instruksi untuk seluruh organisasi yang dikelola oleh IT/DevOps | Standar coding perusahaan, kebijakan keamanan, persyaratan kepatuhan | Semua pengguna dalam organisasi |
| Instruksi pengguna | ~/.claude/CLAUDE.md |
Preferensi pribadi untuk semua proyek | Preferensi gaya kode, pintasan tooling pribadi | Hanya Anda (semua proyek) |
| Instruksi proyek | ./CLAUDE.md atau ./.claude/CLAUDE.md. Lihat AGENTS.md untuk mengetahui kapan ./AGENTS.md dimuat sebagai pengganti atau bersama keduanya |
Instruksi bersama tim untuk proyek | Arsitektur proyek, standar coding, alur kerja umum | Anggota tim melalui source control |
| Instruksi lokal | ./CLAUDE.local.md |
Preferensi pribadi khusus proyek; tambahkan ke .gitignore |
URL sandbox Anda, data uji pilihan | Hanya Anda (proyek saat ini) |
File CLAUDE.md dan CLAUDE.local.md dalam hierarki direktori di atas direktori kerja dimuat saat peluncuran. File di subdirektori dimuat sesuai kebutuhan. Lihat Cara file CLAUDE.md dimuat untuk mengetahui kapan file-file tersebut dimuat dan urutan resolusi lengkapnya.
Untuk proyek besar, Anda dapat memecah instruksi menjadi file-file khusus topik menggunakan aturan proyek. Aturan memungkinkan Anda membatasi instruksi ke jenis file atau subdirektori tertentu.
Menyiapkan CLAUDE.md proyek
CLAUDE.md proyek dapat disimpan di ./CLAUDE.md atau ./.claude/CLAUDE.md. Buat file ini dan tambahkan instruksi yang berlaku untuk siapa pun yang mengerjakan proyek: perintah build dan pengujian, standar coding, keputusan arsitektur, konvensi penamaan, dan alur kerja umum. Instruksi ini dibagikan dengan tim Anda melalui version control, jadi fokuslah pada standar tingkat proyek, bukan preferensi pribadi.
Untuk memastikan file telah dimuat, jalankan /context all dalam sebuah sesi dan periksa daftar di bawah Memory files. Dalam mode layar penuh, /context saja akan menciutkan daftar tersebut.
[!TIP]
Jalankan
/inituntuk menghasilkan CLAUDE.md awal secara otomatis. Claude menganalisis codebase Anda dan membuat file berisi perintah build, instruksi pengujian, dan konvensi proyek yang ditemukannya. Jika CLAUDE.md sudah ada,/initmenyarankan perbaikan alih-alih menimpanya. Sempurnakan dari sana dengan instruksi yang tidak akan ditemukan Claude dengan sendirinya.Untuk alur interaktif multi-fase, atur environment variable
CLAUDE_CODE_NEW_INITke1sebelum Anda menjalankan/init. Atur di shell Anda atau di blokenvpada file pengaturan, seperti yang ditunjukkan di Mengatur environment variable. Dengan variabel tersebut diatur,/initmenanyakan artifact mana yang akan disiapkan: file CLAUDE.md, skill, dan hook. Kemudian ia menjelajahi codebase Anda dengan subagent, mengisi kekosongan melalui pertanyaan lanjutan, dan menyajikan proposal yang dapat ditinjau sebelum menulis file apa pun. Variabel ini hanya mengubah cara/initberjalan, jadi Anda dapat membiarkannya tetap diatur.
Menulis instruksi yang efektif
Claude memperlakukan file CLAUDE.md sebagai konteks, bukan konfigurasi yang ditegakkan, sehingga cara Anda menulis instruksi memengaruhi seberapa andal Claude mengikutinya. Tulis instruksi yang cukup konkret untuk diverifikasi:
- "Gunakan indentasi 2 spasi" alih-alih "Format kode dengan benar"
- "Jalankan
npm testsebelum melakukan commit" alih-alih "Uji perubahan Anda" - "Handler API berada di
src/api/handlers/" alih-alih "Jaga agar file tetap teratur"
Jaga agar file Anda singkat, teratur, dan konsisten:
- Ukuran: targetkan di bawah 200 baris per file CLAUDE.md. File yang lebih panjang mengonsumsi lebih banyak konteks dan mengurangi kepatuhan. Pindahkan instruksi yang hanya relevan untuk sebagian codebase ke aturan dengan cakupan path, yang hanya dimuat ketika Claude bekerja dengan file yang cocok. Impor membantu Anda mengatur file yang panjang tetapi tidak mengurangi biaya konteksnya, karena file yang diimpor dimuat bersama dengan CLAUDE.md yang mengimpornya.
- Struktur: kelompokkan instruksi terkait di bawah header markdown dan poin-poin. Bagian yang teratur lebih mudah diikuti Claude daripada paragraf yang padat.
- Konsistensi: jika dua instruksi saling bertentangan, Claude mungkin memilih salah satunya secara acak. Tinjau file CLAUDE.md Anda, file CLAUDE.md bersarang di subdirektori, dan
.claude/rules/secara berkala untuk menghapus instruksi yang usang atau bertentangan. Agar Claude menemukannya untuk Anda, jalankan audit prompt.
Mengaudit file instruksi Anda
Agar Claude memeriksa file instruksi Anda untuk konten yang usang atau bertentangan, jalankan /doctor prompt-audit dalam sebuah sesi. Claude mencari masalah seperti instruksi yang ditulis untuk model lama, referensi ke file atau perintah yang tidak ada, dan file yang saling bertentangan. Anda mendapatkan laporan temuan beserta usulan suntingan, dan tidak ada yang berubah di file Anda sampai Anda meminta Claude untuk menerapkannya.
Secara default, audit mencakup file CLAUDE.md, CLAUDE.local.md, dan AGENTS.md Anda, ditambah aturan, skill, perintah, subagent, dan gaya output di bawah .claude/ dan ~/.claude/. Untuk mengaudit satu file atau direktori saja, berikan path-nya, misalnya /doctor prompt-audit .claude/skills/deploy.
Audit berjalan melalui skill bawaan /claude-api. Audit tidak tersedia selama skill tersebut dinonaktifkan di skillOverrides atau dengan disableBundledSkills. /doctor prompt-audit memerlukan Claude Code v2.1.283 atau yang lebih baru.
Mengimpor file tambahan
File CLAUDE.md dapat mengimpor file tambahan menggunakan sintaks @path/to/import. File yang diimpor diperluas dan dimuat ke dalam konteks bersama dengan CLAUDE.md yang mereferensikannya.
Path relatif maupun absolut diperbolehkan. Path relatif di-resolve relatif terhadap file yang berisi impor, bukan direktori kerja. File yang diimpor dapat secara rekursif mengimpor file lain, dengan kedalaman maksimum empat lompatan.
Untuk mengimpor file yang path-nya mengandung spasi, letakkan backslash sebelum setiap spasi. Tanpa backslash, path berakhir pada spasi pertama, bahkan ketika impor berada pada barisnya sendiri. Path yang dibungkus tanda kutip sama sekali tidak diimpor, dengan atau tanpa backslash. Impor ini memuat file dari folder bernama Design Docs:
- API conventions @Design\ Docs/api-conventions.md
Parsing impor melewati code span Markdown dan blok kode berpagar. Untuk menyebutkan path di CLAUDE.md Anda tanpa mengimpornya, bungkus dengan backtick: menulis `@README` menjaga teks tetap literal, sedangkan @README di luar backtick akan mengimpor file tersebut.
Untuk menyertakan README, package.json, dan panduan alur kerja, referensikan dengan sintaks @ di mana saja dalam CLAUDE.md Anda:
See @README for project overview and @package.json for available npm commands for this project.
# Additional Instructions
- git workflow @docs/git-instructions.md
Untuk preferensi pribadi per proyek yang tidak boleh dimasukkan ke version control, buat CLAUDE.local.md di root proyek. File ini dimuat bersama CLAUDE.md dan diperlakukan dengan cara yang sama. Tambahkan CLAUDE.local.md ke .gitignore Anda agar tidak di-commit. Dengan CLAUDE_CODE_NEW_INIT=1 diatur, menjalankan /init dan memilih opsi pribadi akan melakukan hal ini untuk Anda.
Jika Anda bekerja di beberapa git worktree dari repositori yang sama, CLAUDE.local.md yang di-gitignore hanya ada di worktree tempat Anda membuatnya. Untuk berbagi instruksi pribadi di seluruh worktree, impor file dari direktori home Anda sebagai gantinya:
# Individual Preferences
- @~/.claude/my-project-instructions.md
[!WARNING]
Impor dalam file memori tingkat proyek bersifat eksternal ketika path-nya di-resolve ke luar direktori kerja Anda, seperti impor dari direktori home di atas. Pertama kali Claude Code menemukan impor eksternal dalam sebuah proyek, ia menampilkan dialog persetujuan yang mencantumkan file-file tersebut. Jika Anda menolak, impor tetap dinonaktifkan dan dialog tidak muncul lagi.
Claude Code menampilkan dialog tersebut untuk melindungi Anda dari file yang di-commit orang lain ke proyek bersama. File memori cakupan pengguna, seperti
~/.claude/CLAUDE.mddan~/.claude/rules/, adalah file yang Anda tulis sendiri. Kecuali dalam sesi Cowork di desktop Anda, Claude Code memuat impornya tanpa dialog dan memercayainya seperti konfigurasi pribadi Anda lainnya.Dalam sesi Cowork di desktop Anda, Claude Code melewati setiap impor dalam file cakupan pengguna yang di-resolve ke path di luar direktori kerja sesi dan memuat sisa file tersebut. Dalam sesi tersebut, ia juga melewati
~/.claude/CLAUDE.mdyang merupakan symlink atau hard link, serta direktori~/.claude/rules/atau file aturan berupa symlink yang mengarah ke luar direktori kerja.
Cara file CLAUDE.md dimuat
Claude Code memuat CLAUDE.md dan CLAUDE.local.md dari direktori kerja Anda saat ini dan setiap direktori di atasnya. Jalankan Claude Code di foo/bar/ dan ia memuat instruksi dari foo/bar/CLAUDE.md, foo/CLAUDE.md, dan file CLAUDE.local.md apa pun yang berada di sampingnya.
Semua file yang ditemukan digabungkan ke dalam konteks alih-alih saling menimpa. Di seluruh pohon direktori, konten diurutkan dari root filesystem ke bawah hingga direktori kerja Anda. Untuk contoh foo/bar/, foo/CLAUDE.md muncul dalam konteks sebelum foo/bar/CLAUDE.md, sehingga instruksi yang lebih dekat dengan tempat Anda meluncurkan Claude dibaca terakhir. Dalam setiap direktori, CLAUDE.local.md ditambahkan setelah CLAUDE.md, sehingga catatan pribadi Anda adalah hal terakhir yang dibaca Claude pada tingkat tersebut.
Claude juga menemukan file CLAUDE.md dan CLAUDE.local.md di subdirektori di bawah direktori kerja Anda saat ini. Alih-alih memuatnya saat peluncuran, Claude Code memuat masing-masing file tersebut begitu Claude membaca, menulis, atau mengedit file lain di subdirektori itu. Membaca termasuk melihat file dengan perintah Bash yang dihitung sebagai pembacaan, seperti cat atau head pada satu file. Untuk file di dalam worktree di bawah .claude/worktrees/, lihat Mengisolasi subagent dengan worktree.
Jika Anda bekerja di monorepo besar tempat file CLAUDE.md tim lain ikut termuat, gunakan claudeMdExcludes untuk melewatinya. Untuk tata letak lengkap file CLAUDE.md root dan per direktori serta aturan, lihat Monorepo dan repo besar.
Komentar HTML tingkat blok (<!-- maintainer notes -->) dalam file CLAUDE.md dihapus sebelum konten dimasukkan ke dalam konteks Claude. Gunakan komentar ini untuk meninggalkan catatan bagi pengelola manusia tanpa menghabiskan token konteks. Komentar di dalam blok kode dipertahankan. Ketika Anda membuka file CLAUDE.md secara langsung dengan tool Read, komentar tetap terlihat.
Memuat dari direktori tambahan
Flag --add-dir memberi Claude akses ke direktori tambahan di luar direktori kerja utama Anda. Secara default, file CLAUDE.md dari direktori-direktori ini tidak dimuat.
Untuk juga memuat file memori dari direktori tambahan, atur environment variable CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD:
CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD=1 claude --add-dir ../shared-config
Bentuk inline ini mengatur variabel untuk satu kali peluncuran tersebut di Bash atau Zsh. Agar tetap aktif untuk setiap sesi, tambahkan ke blok env di ~/.claude/settings.json seperti yang ditunjukkan di Mengatur environment variable.
Dengan variabel tersebut diatur, Claude Code memuat file CLAUDE.md, .claude/CLAUDE.md, CLAUDE.local.md, dan .claude/rules/*.md dari direktori tambahan, kecuali aturan yang menetapkan field paths. CLAUDE.local.md dilewati jika Anda mengecualikan local dari --setting-sources.
Mengatur aturan dengan .claude/rules/
Untuk proyek yang lebih besar, Anda dapat mengatur instruksi ke dalam beberapa file menggunakan direktori .claude/rules/. Ini menjaga instruksi tetap modular dan lebih mudah dikelola oleh tim. Aturan juga dapat dibatasi ke path file tertentu, sehingga hanya dimuat ke dalam konteks ketika Claude bekerja dengan file yang cocok, mengurangi gangguan dan menghemat ruang konteks.
[!NOTE]
Aturan dimuat ke dalam konteks di setiap sesi atau ketika file yang cocok dibuka. Untuk instruksi khusus tugas yang tidak perlu berada dalam konteks sepanjang waktu, gunakan skill sebagai gantinya, yang hanya dimuat ketika Anda memanggilnya atau ketika Claude menentukan bahwa skill tersebut relevan dengan prompt Anda.
Menyiapkan aturan
Letakkan file markdown di direktori .claude/rules/ proyek Anda. Setiap file sebaiknya mencakup satu topik, dengan nama file deskriptif seperti testing.md atau api-design.md. Semua file .md ditemukan secara rekursif, sehingga Anda dapat mengatur aturan ke dalam subdirektori seperti frontend/ atau backend/:
your-project/
├── .claude/
│ ├── CLAUDE.md # Main project instructions
│ └── rules/
│ ├── code-style.md # Code style guidelines
│ ├── testing.md # Testing conventions
│ └── security.md # Security requirements
Aturan tanpa frontmatter paths dimuat saat peluncuran dengan prioritas yang sama seperti .claude/CLAUDE.md.
Aturan proyek dilewati jika Anda mengecualikan project dari --setting-sources. Sebelum v2.1.211, aturan yang dimuat sesuai kebutuhan, termasuk aturan dengan cakupan path dan aturan di direktori .claude/rules/ bersarang, tetap dimuat bahkan ketika project dikecualikan.
Aturan khusus path
Aturan dapat dibatasi ke file tertentu menggunakan frontmatter YAML dengan field paths. Aturan bersyarat ini hanya berlaku ketika Claude bekerja dengan file yang cocok dengan pola yang ditentukan.
---
paths:
- "src/api/**/*.ts"
---
# API Development Rules
- All API endpoints must include input validation
- Use the standard error response format
- Include OpenAPI documentation comments
Aturan dengan cakupan path dimuat ketika Claude menggunakan tool Read, Write, atau Edit pada file yang cocok. Aturan ini juga dimuat ketika Claude melihat file yang cocok dengan perintah Bash yang dihitung sebagai pembacaan, seperti cat atau head pada satu file. Pencocokan juga berfungsi ketika Claude mencapai file melalui path symlink ke direktori proyek, misalnya dalam checkout yang berupa symlink.
Setiap pola bersifat relatif terhadap direktori dasar aturan:
- Aturan proyek: direktori yang berisi folder
.claudemilik aturan tersebut - Aturan tingkat pengguna: direktori kerja utama sesi
Agar aturan dengan cakupan path dimuat untuk file di git worktree saudara, mulai Claude Code di worktree tersebut atau pindahkan sesi ke sana dengan /cd.
Gunakan pola glob di field paths untuk mencocokkan file berdasarkan ekstensi, direktori, atau kombinasi apa pun:
| Pola | Cocok dengan |
|---|---|
**/*.ts |
File .ts di mana saja di bawah direktori dasar |
src/**/* |
Semua file di bawah src/ milik direktori dasar |
*.md |
File .md di mana saja di bawah direktori dasar |
/*.md |
File .md langsung di direktori dasar, bukan di subfolder |
src/components/*.tsx |
File .tsx langsung di src/components/ milik direktori dasar, bukan di subfolder |
Anda dapat menentukan beberapa pola dan menggunakan brace expansion untuk mencocokkan beberapa ekstensi dalam satu pola:
---
paths:
- "src/**/*.{ts,tsx}"
- "lib/**/*.ts"
- "tests/**/*.test.ts"
---
Setiap grup kurung kurawal melipatgandakan jumlah pola yang diperluas: src/*.{ts,tsx} diperluas menjadi dua pola, dan {a,b}/{c,d}/*.{ts,tsx} menjadi delapan. Agar perluasan tetap terbatas, seluruh daftar paths dari sebuah aturan berbagi satu anggaran sebesar 1.000 pola yang diperluas dan 4 MiB, dan pola tanpa kurung kurawal tidak dihitung terhadap anggaran tersebut.
Claude Code menggunakan pola apa pun yang akan melebihi anggaran tanpa diperluas, dan kurung kurawal literalnya tidak cocok dengan file apa pun.
Sintaks glob memperlakukan [ sebagai awal ekspresi kurung siku seperti [abc]. Pola dengan [ yang tidak dapat dibaca sebagai ekspresi kurung siku, seperti photos [2024/**, tidak valid: pola tersebut tidak cocok dengan apa pun, dan pola lain dari aturan tetap berfungsi. Untuk mencocokkan [ literal dalam nama file, escape menjadi photos \[2024/**.
Referensi frontmatter aturan
Konfigurasikan aturan dengan frontmatter YAML di antara penanda --- di bagian atas file. paths adalah satu-satunya field yang dibaca Claude Code dari sebuah aturan; field lain diabaikan tanpa error. Claude Code menghapus frontmatter sebelum memuat aturan ke dalam konteks.
| Field | Wajib | Deskripsi |
|---|---|---|
paths |
Tidak | Pola glob yang membatasi aturan ke file yang cocok. Menerima daftar YAML atau string yang dipisahkan koma |
Jika YAML di antara penanda tidak dapat di-parse, Claude Code mengabaikan frontmatter dan memuat aturan seolah-olah tidak memiliki paths. Jalankan claude --debug untuk melihat error parse.
Berbagi aturan antar proyek dengan symlink
Direktori .claude/rules/ mendukung symlink, sehingga Anda dapat memelihara satu set aturan bersama dan menautkannya ke beberapa proyek. Symlink melingkar dideteksi dan ditangani dengan baik.
Claude Code memperlakukan symlink yang targetnya berada di luar direktori kerja Anda seperti impor eksternal. Aturan yang ditautkan tidak dimuat sampai Anda menyetujui impor eksternal untuk proyek tersebut, dan setelah itu hanya aturan tanpa field paths yang dimuat.
Claude Code meminta persetujuan tersebut sekali per proyek, dalam dialog di awal sesi interaktif. Dialog tersebut mencantumkan file aturan yang ditautkan bersama dengan impor @path eksternal apa pun. Untuk memuat aturan bersama tanpa persetujuan tersebut, simpan di ~/.claude/rules/, tempat aturan tersebut berlaku untuk setiap proyek di mesin Anda.
Contoh ini menautkan direktori bersama dan satu file individual:
ln -s ~/shared-claude-rules .claude/rules/shared
ln -s ~/company-standards/security.md .claude/rules/security.md
Jika Anda mengarahkan symlink .claude/rules/ atau CLAUDE.md ke path jaringan seperti share UNC \\server\share atau path di bawah /net atau /Network, instruksi yang ditautkan tidak dimuat. Claude Code tidak mengikuti tautan tersebut, karena mencari path semacam itu dapat menghubungi host yang disebutkannya. Path \\wsl$ tidak dihitung sebagai path jaringan.
Aturan tingkat pengguna
Aturan pribadi di ~/.claude/rules/ berlaku untuk setiap proyek di mesin Anda. Gunakan aturan ini untuk preferensi yang tidak khusus proyek:
~/.claude/rules/
├── preferences.md # Your personal coding preferences
└── workflows.md # Your preferred workflows
Claude Code memuat aturan tingkat pengguna sebelum aturan proyek, sehingga aturan proyek muncul lebih akhir dalam konteks Claude daripada aturan pengguna. Tidak ada set yang menimpa yang lain: jika aturan pengguna dan aturan proyek bertentangan, Claude mungkin mengikuti salah satunya, jadi jaga agar keduanya tetap konsisten.
Mengelola CLAUDE.md untuk tim besar
Untuk organisasi yang menerapkan Claude Code di berbagai tim, Anda dapat memusatkan instruksi dan mengontrol file CLAUDE.md mana yang dimuat.
Menerapkan CLAUDE.md untuk seluruh organisasi
Organisasi dapat menerapkan CLAUDE.md yang dikelola secara terpusat yang berlaku untuk semua pengguna di sebuah mesin. Developer dapat mengecualikan file CLAUDE.md lain dengan pengaturan claudeMdExcludes, tetapi tidak file ini. Jika seorang developer memulai sesi dengan pemuatan CLAUDE.md dinonaktifkan sepenuhnya, sesi tersebut juga tidak memuat konten terkelola. Gunakan file ini untuk panduan, dan tegakkan aturan dengan pengaturan terkelola seperti permissions.deny.
1. Buat file di lokasi kebijakan terkelola
- macOS:
/Library/Application Support/ClaudeCode/CLAUDE.md - Linux dan WSL:
/etc/claude-code/CLAUDE.md - Windows:
C:\Program Files\ClaudeCode\CLAUDE.md
2. Terapkan dengan sistem manajemen konfigurasi Anda
Gunakan MDM, Group Policy, Ansible, atau alat serupa untuk mendistribusikan file ke seluruh mesin developer. Lihat pengaturan terkelola untuk opsi konfigurasi lain yang berlaku di seluruh organisasi.
Kunci claudeMd memungkinkan Anda menempatkan konten CLAUDE.md terkelola langsung di dalam managed-settings.json alih-alih menerapkan file terpisah.
Cakupan: semua pengguna di mesin, di repositori mana pun. Untuk panduan khusus repositori, commit CLAUDE.md proyek sebagai gantinya.
Prioritas: sama seperti file CLAUDE.md terkelola. Dimuat sebelum CLAUDE.md pengguna dan proyek.
Tempat kunci ini berlaku: hanya pengaturan terkelola dan pengaturan kebijakan. Mengatur claudeMd di pengaturan pengguna, proyek, atau lokal tidak berpengaruh.
Contoh di bawah menambahkan instruksi perilaku langsung di file pengaturan terkelola:
{
"claudeMd": "Always run `make lint` before committing.\nNever push directly to main."
}
CLAUDE.md terkelola dan pengaturan terkelola memiliki tujuan yang berbeda. Gunakan pengaturan untuk penegakan teknis dan CLAUDE.md untuk panduan perilaku:
| Kebutuhan | Konfigurasikan di |
|---|---|
| Memblokir tool, perintah, atau path file tertentu | Pengaturan terkelola: permissions.deny |
| Menegakkan isolasi sandbox | Pengaturan terkelola: sandbox.enabled |
| Environment variable dan perutean penyedia API | Pengaturan terkelola: env |
| Metode login dan pembatasan organisasi | Pengaturan terkelola: forceLoginMethod, forceLoginOrgUUID |
| Pedoman gaya dan kualitas kode | CLAUDE.md terkelola |
| Pengingat penanganan data dan kepatuhan | CLAUDE.md terkelola |
| Instruksi perilaku untuk Claude | CLAUDE.md terkelola |
Aturan pengaturan ditegakkan oleh klien terlepas dari apa yang diputuskan Claude. Instruksi CLAUDE.md membentuk perilaku Claude tetapi bukan lapisan penegakan yang ketat.
Mengecualikan file CLAUDE.md tertentu
Di monorepo besar, file CLAUDE.md leluhur mungkin berisi instruksi yang tidak relevan dengan pekerjaan Anda. Pengaturan claudeMdExcludes memungkinkan Anda melewati file tertentu berdasarkan path atau pola glob. Anda tidak dapat mengecualikan file CLAUDE.md terkelola dengan claudeMdExcludes.
Contoh ini mengecualikan CLAUDE.md tingkat atas dan direktori aturan dari folder induk. Tambahkan ke .claude/settings.local.json agar pengecualian tetap lokal di mesin Anda:
{
"claudeMdExcludes": [
"**/monorepo/CLAUDE.md",
"/home/user/monorepo/other-team/.claude/rules/**"
]
}
Pola dicocokkan dengan path file absolut menggunakan sintaks glob. Anda dapat mengonfigurasi claudeMdExcludes di lapisan pengaturan mana pun: pengguna, proyek, lokal, atau kebijakan terkelola. Array digabungkan di seluruh lapisan.
Untuk mengecualikan file aturan yang Anda capai melalui symlink, baik file itu sendiri maupun direktorinya yang merupakan tautan, tulis pola terhadap salah satu path: path file di bawah .claude/rules/ atau target tautannya. Pola yang cocok dengan salah satu path akan mengecualikan file tersebut. Sebelum v2.1.239, hanya pola yang cocok dengan target tautan yang mengecualikan file tersebut.
AGENTS.md
Claude Code dapat membaca AGENTS.md sebagai instruksi proyek Anda, sehingga repositori yang sudah diatur untuk agen pengkodean lain berfungsi tanpa menambahkan CLAUDE.md, impor, atau pengaturan. Tabel ini menunjukkan apa yang Claude baca secara default untuk setiap kombinasi file instruksi di repositori Anda:
| Repositori Anda memiliki | Claude membaca |
|---|---|
AGENTS.md, dan tidak ada CLAUDE.md atau CLAUDE.local.md di direktori kerja Anda atau di atasnya |
AGENTS.md Anda |
AGENTS.md dan CLAUDE.md atau CLAUDE.local.md di direktori kerja Anda atau di atasnya |
File CLAUDE.md Anda saja |
CLAUDE.md yang sudah mengimpor AGENTS.md |
CLAUDE.md Anda, dengan AGENTS.md disertakan melalui impor |
Untuk mengubah default, misalnya untuk membuat Claude selalu membaca kedua file, membaca hanya CLAUDE.md, atau membaca hanya instruksi yang dikelola organisasi Anda, ubah pengaturan Project instructions.
[!NOTE]
Membaca
AGENTS.mdsecara langsung memerlukan Claude Code v2.1.277 atau lebih baru. Dalam beberapa sesi Claude tidak dapat membacaAGENTS.md, jadi impor dariCLAUDE.mddi sana sebagai gantinya.
When Claude Code reads AGENTS.md
Secara default, Claude membaca AGENTS.md hanya ketika Anda tidak memiliki CLAUDE.md di direktori kerja Anda atau di atasnya. Berikut adalah file Anda mana yang dihitung untuk pemeriksaan itu:
- Dihitung, sehingga Claude membacanya alih-alih
AGENTS.md:CLAUDE.md,.claude/CLAUDE.md, atauCLAUDE.local.mddi direktori kerja Anda atau direktori apa pun di atasnya - Tidak dihitung, dan terus dimuat bersama
AGENTS.md:~/.claude/CLAUDE.mdAnda,CLAUDE.mdyang dikelola organisasi Anda, dan file.claude/rules/
Ketika tidak ada yang dihitung, berikut adalah apa yang Claude baca dan bagaimana Anda dapat mengetahuinya:
- Pada awal sesi: setiap
AGENTS.mddan.claude/AGENTS.mddi direktori kerja Anda dan direktori di atasnya. Dalam sesi interaktif Anda melihat baris sepertino CLAUDE.md found; AGENTS.md loaded: /home/you/repo/AGENTS.mddalam percakapan - Saat Claude bekerja di subdirektori:
AGENTS.mdsubdirektori, ketika Claude membuka file di sana dengan alat Read dan subdirektori itu tidak memiliki satu pun dari ketiga fileCLAUDE.mdmiliknya sendiri - Di dalam setiap
AGENTS.md: impor@pathdiperluas, polaclaudeMdExcludesberlaku, dan subagent yang dimulai tanpa instruksi proyek juga dimulai tanpa file-file ini - Tidak dibaca:
AGENTS.local.md,AGENTS.override.md, atau apa pun di bawah direktori.agents/
[!NOTE]
Karena
CLAUDE.local.mddihitung, menambahkan satu untuk menyimpan instruksi pribadi Anda yang tidak berkomitmen dalam proyek yang bergantung padaAGENTS.mdmenghentikan Claude dari membacaAGENTS.mduntuk Anda. Untuk menyimpanCLAUDE.local.mdAnda dan tetap membuat Claude membacaAGENTS.md, atur Project instructions keclaude-md-and-agents-md.
Choose which instruction files load
Untuk mengubah file mana yang Claude baca, ketik /config dalam sesi Claude Code untuk membuka panel pengaturan, kemudian atur Project instructions ke salah satu nilai berikut:
| Value | What Claude reads |
|---|---|
claude-md-or-agents-md |
File CLAUDE.md Anda, atau file AGENTS.md Anda ketika Anda tidak memiliki CLAUDE.md atau CLAUDE.local.md di direktori kerja Anda atau di atasnya. Ini adalah default |
claude-md-and-agents-md |
File CLAUDE.md dan AGENTS.md Anda bersama-sama, file CLAUDE.md setiap direktori terlebih dahulu dan AGENTS.md nya setelahnya. Claude Code melewati AGENTS.md yang sudah dimuat, sehingga yang diimpor atau disimlink oleh CLAUDE.md Anda tidak dibaca dua kali |
claude-md |
File CLAUDE.md Anda saja |
managed-only |
Hanya CLAUDE.md terkelola organisasi Anda dan auto memory saat peluncuran. File CLAUDE.md proyek, lokal, dan pengguna Anda, file .claude/rules/ Anda, dan setiap AGENTS.md dikecualikan. File CLAUDE.md dan .claude/rules/ subdirektori, dan aturan dengan cakupan path, tetap dimuat sesuai kebutuhan |
Anda juga dapat mengatur nilai dalam file pengaturan alih-alih /config. Tambahkan ke pluginConfigs di bawah cc-plugin-agents-md@builtin, ID plugin bawaan yang membaca AGENTS.md. Claude Code membaca entri tersebut dari ~/.claude/settings.json, file --settings, atau pengaturan terkelola, dan mengabaikannya dalam file pengaturan proyek dan lokal. Contoh ini membuat Claude membaca kedua file:
{
"pluginConfigs": {
"cc-plugin-agents-md@builtin": {
"options": { "instructionFiles": "claude-md-and-agents-md" }
}
}
}
Sebelum v2.1.285, ID plugin tersebut adalah agents-md@builtin, dan Claude Code mengabaikan entri di bawah cc-plugin-agents-md@builtin. Jika versi sebelumnya juga membaca file pengaturan Anda, gunakan agents-md@builtin di sana. Claude Code v2.1.285 dan yang lebih baru membaca entri di bawah ID mana pun.
Perubahan Anda berlaku dari pesan berikutnya yang Anda kirim dan di setiap sesi baru.
When AGENTS.md support is unavailable
Dalam sesi ini Claude membaca file CLAUDE.md saja, dan Project instructions tidak muncul di panel pengaturan /config:
- Anda menggunakan versi Claude Code sebelum v2.1.277
- Anda menggunakan
/pluginuntuk menonaktifkan plugin bawaan yang membacaAGENTS.md - Dalam beberapa kasus, ini adalah sesi pertama Anda setelah Anda meningkatkan dari v2.1.276 atau lebih awal. Claude membaca
AGENTS.mddari sesi berikutnya Anda
Sebelum v2.1.281, beberapa sesi, seperti yang ada di Amazon Bedrock atau dengan telemetri dinonaktifkan, membaca file CLAUDE.md saja. Pada versi tersebut, perbarui Claude Code. Untuk memberikan Claude AGENTS.md Anda dalam sesi apa pun dari ini, impor dari CLAUDE.md.
Where AGENTS.md differs from CLAUDE.md
AGENTS.md yang Claude baca melalui pengaturan Project instructions berbeda dari CLAUDE.md di tempat-tempat ini:
CLAUDE.md |
AGENTS.md dibaca melalui pengaturan |
|
|---|---|---|
Hook InstructionsLoaded |
Aktif | Tidak aktif. Mereka aktif seperti biasa untuk AGENTS.md yang diimpor atau disimlink oleh CLAUDE.md |
Direktori yang Anda tambahkan dengan --add-dir saat CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD diatur |
CLAUDE.md mereka dimuat |
AGENTS.md mereka tidak dimuat |
Impor @path dari file di luar direktori kerja Anda |
Claude Code meminta Anda menyetujui external imports | Dimuat hanya jika Anda sudah menyetujui impor eksternal untuk proyek ini, tanpa prompt |
Remove an earlier AGENTS.md workaround
Jika Anda menyiapkan Claude Code untuk membaca AGENTS.md sebelum melakukannya sendiri, berikut adalah apa yang harus dilakukan dengan setiap pengaturan umum:
CLAUDE.mdyang berisi@AGENTS.md: Anda dapat meninggalkannya. Menyimpan impor tidak pernah membuat Claude membacaAGENTS.mddua kali, nilai Project instructions apa pun yang Anda gunakan. HapusCLAUDE.mdjika tidak menyimpan apa pun yang lain, atau simpan jika beberapa sesi Anda tidak dapat memuatAGENTS.mdsecara langsung.CLAUDE.mdyang memberi tahu Claude dalam kata-kata untuk membacaAGENTS.md: Claude melihatAGENTS.mdhanya jika memutuskan untuk membuka file. HapusCLAUDE.mdsehingga Claude membacaAGENTS.mdsecara langsung, atau ganti kalimat dengan impor@AGENTS.md.CLAUDE.mdyang symlink keAGENTS.md: tidak ada, atau hapus symlink. Bagaimanapun Claude membaca konten sekali.- Hook
SessionStartyang mencetakAGENTS.md: hapus itu. Setelah Claude membacaAGENTS.mdsecara langsung, hook menambahkan salinan kedua ke konteks.
Share one file with other coding tools
Ketika Claude tidak membaca AGENTS.md Anda secara langsung, Anda masih dapat menyimpannya sebagai satu file yang dibagikan setiap alat dengan menempatkan impor @AGENTS.md dalam CLAUDE.md di sebelahnya. Lakukan ini ketika proyek Anda juga memiliki CLAUDE.md, ketika Anda telah mengatur Project instructions ke claude-md, atau dalam sesi yang tidak dapat memuat AGENTS.md. Tambahkan instruksi khusus Claude apa pun di bawah impor, dan Claude membaca file yang diimpor terlebih dahulu, kemudian sisanya:
@AGENTS.md
## Claude Code
Use plan mode for changes under `src/billing/`.
Jika Anda tidak memerlukan konten khusus Claude, symlink juga berfungsi:
ln -s AGENTS.md CLAUDE.md
Perintah tidak mencetak output pada kesuksesan. Sebelum Anda memilih symlink daripada impor, periksa batasan ini:
- Pengeditan: Claude membaca
CLAUDE.mdmelalui tautan, tetapi alat Edit dan Write menolak untuk menulis melalui symlink, dan penolakan mengarahkan Claude untuk mengedit target tautan,AGENTS.md, sebagai gantinya - Windows: jika Anda atau siapa pun yang mengkloning repositori bekerja di Windows, gunakan impor
@AGENTS.mdsebagai gantinya. Membuat symlink di sana memerlukan hak istimewa Administrator atau Mode Pengembang, dan Git memeriksa symlink yang berkomitmen sebagai file teks biasa kecualicore.symlinksdiaktifkan, yang meninggalkan klon itu denganCLAUDE.mdsatu baris sebagai pengganti instruksi Anda
Dengan salah satu pendekatan, jalankan /context all dalam sesi berikutnya Anda dan konfirmasi CLAUDE.md muncul di bawah Memory files.
Migrate instructions from other tools
Menjalankan /init membaca file instruksi alat lain dan menggabungkan bagian yang relevan ke dalam CLAUDE.md yang dihasilkan:
- Aturan Cursor di
.cursor/rules/atau.cursorrules - Aturan Copilot di
.github/copilot-instructions.md - Dengan
CLAUDE_CODE_NEW_INIT=1diatur:AGENTS.md,.devin/rules/,.windsurf/rules/atau.windsurfrules, dan.clinerules
Anda juga dapat menjalankan /import untuk membawa konfigurasi agent pengkodean yang didukung ke Claude Code, yang menambahkan salinan satu kali file instruksi seperti AGENTS.md ke CLAUDE.md yang cocok dan membawa server MCP, perintah, subagent, dan skills.
Auto memory
Auto memory memungkinkan Claude mengumpulkan pengetahuan lintas sesi tanpa Anda menulis apa pun. Saat bekerja, Claude menyimpan empat jenis catatan untuk dirinya sendiri. Claude mencatat jenisnya sebagai bidang type dalam frontmatter file memori:
user: peran Anda, keahlian, dan preferensi kerjafeedback: koreksi yang Anda berikan kepada Claude dan pendekatan yang Anda konfirmasiproject: pekerjaan yang sedang berlangsung, tenggat waktu, dan keputusan yang tidak dapat Claude turunkan dari kode atau riwayat gitreference: tempat menemukan informasi di luar proyek, seperti pelacak masalah atau dasbor
Claude melewati apa pun yang dapat diturunkan dari basis kode, seperti arsitektur, jalur file, atau perbaikan debugging. Itu juga melewati apa pun yang sudah dikatakan file CLAUDE.md Anda.
Claude tidak menyimpan sesuatu setiap sesi. Itu memutuskan apa yang layak diingat berdasarkan apakah informasi akan berguna dalam percakapan masa depan.
Aktifkan atau nonaktifkan auto memory
Auto memory aktif secara default dalam sesi lokal. Di luar sesi Claude Tag, sesi dalam lingkungan self-hosted berjalan dengan auto memory nonaktif secara default.
Untuk mengalihkannya, buka /memory dalam sesi dan gunakan toggle auto memory, yang menyimpan autoMemoryEnabled ke pengaturan pengguna Anda di ~/.claude/settings.json.
Toggle tersebut dapat mematikan auto memory tetapi tidak dapat mengaktifkannya kembali dalam sesi-sesi berikut:
- Sesi latar belakang
- Sesi yang dimulai oleh sesi Claude Code lain, seperti ketika Claude menjalankan
claudemelalui tool Bash-nya
Selama auto memory nonaktif di sana, toggle menampilkan off · can't be turned on here; use a session started outside Claude Code. Untuk mengaktifkan kembali auto memory, jalankan claude langsung di terminal Anda dan gunakan toggle /memory dalam sesi tersebut.
Untuk mematikannya untuk satu proyek, atur autoMemoryEnabled dalam pengaturan proyek itu:
{
"autoMemoryEnabled": false
}
Untuk menonaktifkan auto memory melalui variabel lingkungan, atur CLAUDE_CODE_DISABLE_AUTO_MEMORY=1.
Lokasi penyimpanan
Setiap proyek mendapatkan direktori memori sendiri di ~/.claude/projects/<project>/memory/. Jalur <project> berasal dari repositori git, jadi semua worktrees dan subdirektori dalam repo yang sama berbagi satu direktori auto memory. Di luar repo git, root proyek digunakan sebagai gantinya.
Jika Anda menetapkan CLAUDE_CODE_PROJECT_DIR_NAME di samping CLAUDE_CONFIG_DIR, Claude Code menggunakan nama itu sebagai direktori <project> di bawah <config dir>/projects/ sebagai gantinya, di mana pun repositori apa pun yang Anda luncurkan, jadi proyek yang diluncurkan dengan direktori konfigurasi itu berbagi satu direktori auto memory. Memerlukan Claude Code v2.1.234 atau lebih baru.
Untuk menyimpan auto memory di lokasi berbeda, atur autoMemoryDirectory dalam settings.json Anda. Itu dibaca dari cakupan pengaturan apa pun: pengguna, proyek, lokal, kebijakan, atau --settings.
{
"autoMemoryDirectory": "~/my-custom-memory-dir"
}
Nilai harus berupa jalur absolut atau dimulai dengan ~/.
Ketika Anda menetapkannya dalam .claude/settings.json atau .claude/settings.local.json proyek, Claude Code menghormatinya di bawah aturan kepercayaan ruang kerja yang sama dengan hooks dalam file pengaturan. Sementara permissions.blockReadsOutsideWorkingDirectories aktif, Claude Code tidak memuat auto memory dari direktori yang dipilih oleh file pengaturan yang disediakan repositori dan tidak menyimpan apa pun ke dalamnya, di mana pun direktori itu berada.
Direktori berisi indeks MEMORY.md dan satu file topik per memori:
~/.claude/projects/<project>/memory/
├── MEMORY.md # Indeks, satu baris per memori, dimuat ke dalam setiap sesi
├── user_role.md # Satu memori
├── feedback_testing.md # Satu memori
└── ... # File topik lainnya yang Claude buat
MEMORY.md bertindak sebagai indeks direktori memori. Claude membaca dan menulis file di direktori ini sepanjang sesi Anda, menggunakan MEMORY.md untuk melacak apa yang disimpan di mana.
Auto memory adalah mesin-lokal. Semua worktrees dan subdirektori dalam repositori git yang sama berbagi satu direktori auto memory. File tidak dibagikan di seluruh mesin atau lingkungan cloud.
Claude Code menghapus transkrip sesi lama setelah periode retensi cleanupPeriodDays, tetapi mengecualikan file memori di direktori memori dari pembersihan retensi itu. MEMORY.md dan file topik tetap ada sampai Anda atau Claude mengedit atau menghapusnya.
Bagaimana cara kerjanya
200 baris pertama MEMORY.md, atau 25KB pertama, mana pun yang lebih dulu, dimuat di awal setiap percakapan. Konten di luar batas itu tidak dimuat saat awal sesi. Claude membuat MEMORY.md ringkas dengan memindahkan catatan terperinci ke file topik terpisah.
Setelah Claude menulis ke MEMORY.md, Claude Code mengukur file terhadap batas baca 200 baris dan 25KB. Jika file mendekati batas, Claude Code mengingatkan Claude untuk mempersingkatnya: simpan satu baris per entri, pindahkan detail ke file topik, dan gabungkan atau hapus entri yang sudah usang. Jika file melampaui batas, penulisan masih berhasil, tetapi Claude Code mengembalikan kesalahan yang memberi tahu Claude untuk menulis ulang indeks, karena semua yang melampaui batas dibuang pada pemuatan berikutnya.
[!NOTE]
Batas ini hanya berlaku untuk
MEMORY.md. Claude mendapatkan keseluruhan isi setiap file CLAUDE.md yang dimuat saat peluncuran, selama file tersebut berukuran 4 MiB atau lebih kecil. Claude Code melewati file yang lebih dari 4 MiB dan tidak memuat isinya sama sekali. Aturan dengan cakupan jalur dan file CLAUDE.md di subdirektori memiliki batas per file yang lebih kecil tersendiri.
Claude Code tidak memuat file topik seperti user_role.md atau feedback_testing.md saat startup. Claude membacanya sesuai permintaan menggunakan alat file standarnya ketika membutuhkan informasi.
Auto memory percakapan utama tidak dimuat ke dalam subagents; pengecualiannya adalah fork, yang mewarisi percakapan induk dan prompt sistem. Auto memory subagent sendiri, diaktifkan dengan bidang memory subagent, adalah direktori terpisah.
Claude membaca dan menulis file memori selama sesi Anda. Ketika Anda melihat pesan seperti "Saved 2 memories" atau "Recalled 2 memories" di antarmuka Claude Code, Claude secara aktif memperbarui atau membaca dari ~/.claude/projects/<project>/memory/.
Ketika Claude menulis file memori yang dimulai dengan frontmatter YAML, Claude Code mencatat waktu penulisan dalam bidang frontmatter modified sebagai stempel waktu ISO 8601. Stempel waktu menunjukkan seberapa terkini faktanya, baik untuk Anda maupun untuk Claude ketika membacanya kembali.
Audit dan edit memori Anda
File auto memory adalah markdown biasa yang dapat Anda edit atau hapus kapan saja. Jalankan /memory untuk menelusuri dan membuka file memori dari dalam sesi.
Lihat dan edit dengan /memory
Perintah /memory mencantumkan lokasi file CLAUDE.md, CLAUDE.local.md, dan file memori lainnya di seluruh cakupan pengguna dan proyek. Daftar tersebut mencakup entri CLAUDE.md pengguna dan proyek untuk file yang belum ada. Perintah ini juga memungkinkan Anda mengalihkan auto memory aktif atau mati dan menyediakan opsi untuk membuka folder auto memory. Pilih file apa pun untuk membukanya di editor Anda; memilih file yang belum ada akan membuatnya terlebih dahulu.
Editor GUI seperti VS Code membuka file di jendela terpisah, dan Anda dapat terus menggunakan sesi saat file terbuka. Editor terminal seperti Vim mengambil alih terminal sampai Anda keluar.
Ketika Anda meminta Claude untuk mengingat sesuatu, seperti "selalu gunakan pnpm, bukan npm" atau "ingat bahwa tes API memerlukan instans Redis lokal," Claude menyimpannya ke auto memory. Untuk menambahkan instruksi ke CLAUDE.md sebagai gantinya, minta Claude secara langsung, seperti "tambahkan ini ke CLAUDE.md," atau edit file sendiri melalui /memory.
Troubleshoot memory issues
Ini adalah masalah paling umum dengan CLAUDE.md dan auto memory, bersama dengan langkah-langkah untuk men-debug mereka.
Claude isn't following my CLAUDE.md
Konten CLAUDE.md disampaikan sebagai pesan pengguna setelah prompt sistem, bukan sebagai bagian dari prompt sistem itu sendiri. Claude membacanya dan mencoba mengikutinya, tetapi tidak ada jaminan kepatuhan ketat, terutama untuk instruksi yang samar atau bertentangan.
Untuk men-debug:
- Jalankan
/context alldan periksa daftar di bawah Memory files untuk memverifikasi file CLAUDE.md dan CLAUDE.local.md yang seharusnya dimuat saat peluncuran. Jika salah satunya tidak ada di sana, Claude tidak dapat melihatnya. Gunakan/memoryuntuk membuka dan mengedit file. - Jika pemberitahuan
Instruction file not loadedmuncul, lihat apa artinya dan apa yang harus dilakukan. CLAUDE.mddi subdirektori dari direktori kerja Anda tidak muncul di bawah Memory files, karena file tersebut dimuat sesuai kebutuhan, bukan saat peluncuran. Saat dimuat, barisLoadedbeserta jalurnya muncul di terminal. Untuk menguji file baru, buat file tersebut dari shell Anda alih-alih meminta Claude menulisnya, lalu minta Claude membaca file di subdirektori tersebut.- Periksa bahwa CLAUDE.md yang relevan berada di lokasi yang dimuat untuk sesi Anda (lihat Choose where to put CLAUDE.md files).
- Buat instruksi lebih spesifik. "Gunakan indentasi 2 spasi" bekerja lebih baik daripada "format kode dengan baik."
- Cari instruksi yang bertentangan di seluruh file CLAUDE.md. Jika dua file memberikan panduan berbeda untuk perilaku yang sama, Claude mungkin memilih satu secara sembarangan.
- Periksa apakah instruksi Anda bersaing dengan panduan yang ditambahkan Claude Code sendiri. Jika CLAUDE.md Anda menetapkan aturan commit atau pull request, matikan yang bawaan dengan
includeGitInstructionsdan atur teks atribusi denganattribution.
Jika instruksi adalah sesuatu yang harus berjalan pada titik tertentu, seperti sebelum setiap commit atau setelah setiap pengeditan file, tulislah sebagai hook sebagai gantinya. Hooks dieksekusi sebagai perintah shell pada peristiwa siklus hidup tetap dan berlaku terlepas dari apa yang Claude putuskan untuk lakukan.
Untuk instruksi yang Anda inginkan di tingkat prompt sistem, gunakan --append-system-prompt. Anda meneruskannya saat peluncuran, jadi lebih cocok untuk skrip dan otomasi daripada penggunaan interaktif. Untuk cara kerjanya saat Anda melanjutkan percakapan, lihat System prompt flags in resumed conversations.
[!TIP]
Gunakan hook
InstructionsLoadeduntuk mencatat fileCLAUDE.mddan file aturan mana yang dimuat, kapan mereka dimuat, dan mengapa. Ini berguna untuk men-debug aturan khusus jalur atau file yang dimuat secara lazy di subdirektori.
My AGENTS.md isn't loading
Jika repositori Anda memiliki AGENTS.md dan Claude tampaknya tidak tahu apa yang dikatakannya, penyebab biasanya adalah CLAUDE.md di suatu tempat di jalur proyek. Secara default Claude membaca AGENTS.md hanya ketika Anda tidak memiliki CLAUDE.md atau CLAUDE.local.md di direktori kerja Anda atau di atasnya. Periksa ini secara berurutan:
- Cari
CLAUDE.md,.claude/CLAUDE.md, atauCLAUDE.local.mddi direktori kerja Anda atau direktori apa pun di atasnya, selain~/.claude/CLAUDE.md. Jika Anda menemukan satu, Claude membacanya sebagai gantinya dariAGENTS.mdkecuali Anda menetapkan Project instructions keclaude-md-and-agents-md. - Jalankan
claude --versiondan konfirmasi v2.1.277 atau lebih baru. Sebelum v2.1.281, beberapa sesi, seperti sesi di Amazon Bedrock atau dengan telemetri dinonaktifkan, tidak dapat memuatAGENTS.mdjuga, jadi pada versi tersebut perbarui ke v2.1.281 atau lebih baru. - Ketik
/configdalam sesi Anda untuk membuka panel pengaturan dan konfirmasi Project instructions tidak diatur keclaude-mdataumanaged-only. Jika Anda tidak melihat pengaturan di sana sama sekali, sesi Anda adalah sesi yang tidak dapat memuatAGENTS.md.
Untuk memeriksa apakah Claude membaca AGENTS.md Anda, jalankan /memory dan cari jalurnya dalam daftar.
Sebelum v2.1.280, /memory dan /context tidak mencantumkan AGENTS.md yang Claude baca secara langsung. Pada versi tersebut, tanyakan kepada Claude apa yang dikatakan instruksi proyeknya sebagai gantinya.
Jika Anda ingin menyimpan CLAUDE.md yang Anda temukan, atau sesi Anda tidak dapat memuat AGENTS.md, tambahkan CLAUDE.md di sebelah AGENTS.md Anda yang mengimpornya.
I don't know what auto memory saved
Jalankan /memory dan pilih folder auto memory untuk menelusuri apa yang telah disimpan Claude. Semuanya adalah markdown biasa yang dapat Anda baca, edit, atau hapus.
My CLAUDE.md is too large
File di atas 200 baris mengonsumsi lebih banyak konteks dan dapat mengurangi kepatuhan. Claude Code melewati file di atas 4 MiB. Gunakan path-scoped rules untuk memuat instruksi hanya ketika Claude bekerja dengan file yang cocok, atau pangkas konten yang tidak diperlukan dalam setiap sesi. Memisahkan ke dalam impor @path membantu organisasi tetapi tidak mengurangi konteks, karena file yang diimpor dimuat bersama CLAUDE.md yang mengimpornya.
Jika salah satu file instruksi Anda melebihi panjang yang direkomendasikan, Anda akan melihat peringatan saat startup dan saat Anda menjalankan /status. Anda juga akan melihat peringatan ketika file yang masing-masing berada dalam panjang tersebut menambah hingga melampaui batas gabungan saat startup sesi. Setiap CLAUDE.md, file rules, dan impor @path dihitung sebagai file terpisah.
Checkup /doctor mengusulkan pemangkasan untuk CLAUDE.md yang di-commit ke repositori: ia memotong konten yang dapat Claude turunkan dari codebase, seperti tata letak direktori, daftar dependensi, dan ikhtisar arsitektur, dan menyimpan jebakan, rasional, dan konvensi yang berbeda dari default tool.
[!NOTE]
Jaga setiap file aturan yang dibatasi jalur tetap dalam batas ukuran per file miliknya sendiri, karena Claude hanya menerima bagian awal dari file yang melebihinya.
Claude ignores the end of my subdirectory CLAUDE.md
Ketika CLAUDE.md subdirektori atau file aturan yang dimuat sesuai kebutuhan melebihi batas ukuran per file, Claude hanya menerima bagian awalnya. Bagian tersebut diakhiri dengan catatan yang memberi tahu Claude untuk membaca sisanya dengan tool Read, dan sampai Claude memilih untuk melakukannya, instruksi selanjutnya tidak ada dalam konteksnya.
Periksa apakah file Anda melebihi batas, dan perkecil jika memang melebihi:
- Konfirmasi bahwa batas tersebut berlaku untuk file Anda. Batas ini berlaku untuk file-file berikut, yang dimuat sesuai kebutuhan:
CLAUDE.mddanCLAUDE.local.mddi subdirektori dari direktori tempat Anda memulai Claude Code, serta file yang mereka impor dengan@path- File aturan di
.claude/rules/milik subdirektori - Path-scoped rules di
.claude/rules/proyek Anda atau di~/.claude/rules/
- Temukan batas untuk context window sesi Anda:
- Context window 200K: 40.000 karakter
- Context window 1M: 200.000 karakter pada Claude Opus 4.6 dan Claude Sonnet 4.6, dan 150.000 karakter pada model yang lebih baru
- Di Bash atau Zsh, jalankan
wc -m path/to/CLAUDE.mduntuk mencetak jumlah karakter file Anda. - Bandingkan jumlah tersebut dengan batas Anda:
- Melebihi batas: pangkas file, atau pindahkan sebagian isinya ke satu atau lebih file aturan, yang masing-masing dihitung terhadap batas secara terpisah
- Di bawah batas: cari penyebab lain di bawah Claude isn't following my CLAUDE.md
Sebelum v2.1.309, Claude Code tidak menerapkan batas ini pada file yang dimuat sesuai kebutuhan.
Instructions seem lost after /compact
CLAUDE.md root proyek bertahan dari compaction: setelah /compact, Claude membaca ulang dari disk dan menyuntikkannya kembali ke dalam sesi. File CLAUDE.md bersarang di subdirektori dan aturan dengan frontmatter paths: dimuat kembali sesuai kebutuhan.
Jika instruksi hilang setelah pemadatan, itu diberikan hanya dalam percakapan, berada di CLAUDE.md bersarang yang belum dimuat ulang, atau merupakan aturan yang dibatasi jalur yang belum cocok dengan file sejak itu. Tambahkan instruksi percakapan ke CLAUDE.md untuk membuatnya bertahan. Lihat What survives compaction untuk rincian lengkap.
Lihat Write effective instructions untuk panduan tentang ukuran, struktur, dan spesifisitas.
Sumber daya terkait
- Debug konfigurasi Anda: diagnosis mengapa CLAUDE.md atau pengaturan tidak berlaku
- Skills: paket alur kerja yang dapat diulang yang dimuat sesuai permintaan
- Settings: konfigurasi perilaku Claude Code dengan file pengaturan
- Memori subagent: biarkan subagents mempertahankan auto memory mereka sendiri