Menaruh Instruksi di Claude Code: Panduan Memilih yang Tepat
Di mana menaruh instruksi di Claude Code: CLAUDE.md, rules, skill, custom command, hook, atau auto memory. Tabel keputusan dari sebuah repo nyata.
Oleh Matthews WongDitinjau pada Dicek dengan Claude Code v2.1.301
Poin utama
Claude Code menyediakan beberapa tempat untuk instruksi yang dipakai berulang, dan pilihan yang tepat bergantung pada kapan Claude harus melihatnya serta apakah itu saran atau jaminan. Fakta yang selalu benar masuk CLAUDE.md, prosedur sesekali masuk skill, aturan wajib masuk hook, dan hal yang dipelajari Claude saat bekerja masuk auto memory.
Setelah pelajaran ini, Anda bisa
- Memilah instruksi apa pun ke CLAUDE.md, skill, hook, atau auto memory dengan beberapa pertanyaan.
- Menjelaskan hubungan custom command dan skill saat ini, dan mana yang menang saat namanya bentrok.
- Membedakan apa yang dibagikan lewat git dan apa yang tetap di mesin Anda.
Ikuti diagramnya langkah demi langkah
Tekan Putar, atau melangkah dengan panah. Setiap langkah juga ditulis di bawah diagram.
Satu instruksi, empat kemungkinan tempat
Instruksi yang selalu benar masuk ke CLAUDE.md, prosedur yang kadang dibutuhkan ke skill, aturan yang wajib berlaku ke hook, dan hal yang dipelajari Claude sendiri ke auto memory.
Ditinjau pada 17 Oktober 2026 · Claude Code v2.1.301
Tombol: ← → langkah · Home / End · K putar atau jeda
Satu instruksi yang dipakai ulang, empat tempat. Pilihan tempat menentukan kapan Claude melihatnya, dan apakah ia sekadar saran atau sesuatu yang selalu berjalan.
Fakta yang benar di setiap sesi, seperti perintah build atau konvensi, cocok di CLAUDE.md. File ini dimuat di awal sesi, jadi buat tetap ringkas.
Tebak langkah berikutnya Checklist rilis yang panjang hanya penting saat Anda merilis. Di mana sebaiknya ditaruh? (Di CLAUDE.md · Di skill · Di hook)Claude melihat deskripsi skill di setiap sesi; teks penuhnya dimuat saat Anda mengetik /nama atau Claude mencocokkan tugasnya. File command bekerja serupa.
CLAUDE.md dan skill adalah permintaan yang bisa dipertimbangkan Claude. Hook berjalan pada event-nya apa pun keputusan Claude, dan tidak menambah konteks kecuali ada output.
Tebak langkah berikutnya Anda dua kali mengoreksi gaya test Claude tanpa mengedit file apa pun. Tempat mana yang tetap bisa menangkapnya? (CLAUDE.md, dengan sendirinya · Auto memory · Hook, dengan sendirinya)Auto memory adalah buku catatan Claude sendiri, disimpan per repositori di mesin Anda. 200 baris pertama atau 25KB indeksnya dimuat di setiap sesi.
Selalu benar: CLAUDE.md. Kadang dibutuhkan: skill. Wajib terjadi: hook. Dipelajari saat bekerja: auto memory. Pengetahuan tim masuk file yang di-commit.
Bagaimana memilih tempat untuk sebuah instruksi Claude Code?
Ajukan tiga pertanyaan secara berurutan. Apakah Claude membutuhkannya di setiap sesi? Kalau ya, itu konteks, dan CLAUDE.md tempatnya: perintah build, konvensi, aturan jangan-lakukan-X. Apakah hanya dibutuhkan sesekali, untuk satu jenis tugas? Kalau ya, itu skill, karena deskripsi skill dimuat tiap sesi tetapi isi lengkapnya hanya dimuat saat dipakai. Apakah harus terjadi setiap kali, tanpa pertimbangan? Kalau ya, itu hook, yang berjalan pada event-nya apa pun keputusan Claude.
Baca selengkapnya (2)Tutup
Dokumentasi memberi pemicu yang sama dari arah sebaliknya. Kalau Claude salah dua kali soal konvensi atau perintah, tambahkan ke CLAUDE.md. Kalau Anda menempelkan playbook yang sama ke chat untuk ketiga kalinya, jadikan skill. Kalau Anda ingin sesuatu terjadi setiap kali tanpa diminta, tulis hook. Dan dokumentasi menyebut batasnya dengan jelas: CLAUDE.md adalah konteks, bukan konfigurasi yang ditegakkan, jadi untuk aturan yang wajib berlaku, pakai hook, bukan instruksi di prompt.
Repo ini menunjukkan pembagiannya. CLAUDE.md-nya memuat aturan keras yang dibutuhkan setiap sesi, seperti menjaga dua file pesan tetap punya struktur key yang sama. Panduan panjang menulis post ada di sebuah skill yang hanya dimuat untuk pekerjaan blog. Satu hal yang wajib berjalan setelah setiap edit, pemeriksaan gambar, adalah hook. Dan aturan bahwa sumber yang digenerate tidak boleh basi ditegakkan oleh build yang gagal, bukan oleh kalimat yang bisa dilewati siapa pun.
Slash command, custom command, dan skill: apa bedanya sekarang?
Custom command sudah digabung ke dalam skill. File di .claude/commands/deploy.md dan skill di .claude/skills/deploy/SKILL.md sama-sama membuat /deploy dan bekerja dengan cara yang sama, dan file command lama tetap berjalan. Skill menambahkan folder untuk file pendukung, frontmatter yang mengatur siapa yang memanggilnya, dan kemampuan Claude memuatnya otomatis saat relevan. Dokumentasi menyarankan skill untuk pekerjaan baru. Kalau file command dan skill punya nama yang sama, skill yang menang.
Baca selengkapnya (2)Tutup
Dua field frontmatter menentukan siapa yang boleh memanggil skill. Dengan disable-model-invocation: true, hanya Anda yang bisa menjalankannya lewat /nama, dan deskripsinya tidak masuk konteks sampai Anda memanggilnya; pakai ini untuk alur kerja yang punya efek samping. Dengan user-invocable: false, hanya Claude yang bisa memanggilnya, dan skill itu hilang dari menu /. Secara default, keduanya bisa. Perintah bawaan seperti /memory dan /status adalah hal yang berbeda: ia datang bersama Claude Code, bukan file yang Anda tulis.
Jadi pilihan praktisnya jarang lagi command lawan skill. Pilihannya skill lawan CLAUDE.md. Deskripsi skill selalu ada di konteks, jadi tulis agar Claude bisa tahu kapan memakainya. Repo ini tidak pernah punya folder .claude/commands/; prosedurnya langsung masuk ke skill.
Di mana posisi auto memory dibanding CLAUDE.md?
Keduanya adalah dua sistem memori yang saling melengkapi, sama-sama dimuat di awal percakapan, dan sama-sama diperlakukan sebagai konteks, bukan penegakan. Anda menulis CLAUDE.md, dan isinya instruksi serta aturan. Claude menulis auto memory, dan isinya hal yang dipelajari: peran dan preferensi Anda, koreksi yang Anda berikan, keputusan proyek yang tidak bisa diturunkan dari kode, dan petunjuk ke sistem di luar proyek. Claude melewati hal yang bisa dibaca dari codebase dan hal yang sudah tertulis di CLAUDE.md.
Baca selengkapnya (2)Tutup
Auto memory tinggal di satu folder per proyek di bawah ~/.claude/projects, dengan indeks MEMORY.md dan satu file per topik. Sifatnya lokal di mesin: tidak di-commit dan tidak dibagikan antar mesin. Hanya 200 baris pertama atau 25KB dari MEMORY.md yang dimuat di awal; file topik dibaca sesuai kebutuhan. Jalankan /memory untuk menelusuri dan membuka file-filenya serta mengaktifkan atau mematikan auto memory, yang secara default aktif di sesi lokal. Anda juga bisa mengedit atau menghapus catatan apa pun; semuanya markdown biasa.
Itu membuat aturan berbagi jadi sederhana. Pengetahuan yang dibutuhkan seluruh tim harus ada di file yang Anda commit: CLAUDE.md, skill, atau catatan biasa di repo. CLAUDE.md repo ini menunjuk ke file review bertanggal di .dev/review karena alasan itu, supaya setiap kontributor dan setiap mesin melihat daftar yang sama. Auto memory untuk apa yang dipelajari Claude tentang Anda dan cara kerja Anda, bukan untuk catatan bersama tim.
Konfigurasi nyata di balik pelajaran ini
Kutipan dari repositori yang membangun dan men-deploy situs ini, apa adanya.
1. **`messages/en.json` and `messages/id.json` must have the exact same key tree.** Missing key in either file → runtime error.
2. **No `{`, `}`, or `<` in blog `content.*` JSON values.** The merge script rejects them. Put markup in JSX; put ICU interpolation only in non-blog UI strings.
3. **Every slug in `BLOG_POSTS_STATIC` must have an entry in `BLOG_META` (and vice versa).** `assertBlogParity()` fails the build otherwise.Aturan yang selalu benar: berlaku untuk setiap tugas di repo, jadi ditaruh di CLAUDE.md yang dimuat penuh di setiap sesi. Namun semuanya berupa permintaan. Aturan 3 juga ditegakkan, karena assertBlogParity() berjalan di build dan menggagalkannya; kalimatnya memberi tahu Claude, sedangkan build yang menjamin.
---
name: writing-blog-content
description: House standard for writing a bilingual blog post on this site — voice, section skeleton, callout and code-block conventions, the SEO limits enforced by the validators (title 63 chars, description 140-155, 12-15 keywords ending "Matthews Wong"), citation discipline, Indonesian translation rules, and the anti-patterns that make agent-written posts read as filler. Use when drafting, editing or reviewing any blog post, article, excerpt, key takeaway, FAQ, meta description or keyword set for this repository.
---Pengetahuan yang kadang dibutuhkan: skill. Hanya deskripsi (dan nama) yang ada di konteks setiap sesi, dan deskripsinya ditutup dengan pemicu, Use when drafting, editing or reviewing any blog post. Standar panjang di bawah frontmatter dimuat saat tugas blog cocok. Tidak ada tool yang didaftarkan, jadi isinya dibaca sebagai pengetahuan, bukan dijalankan sebagai skrip.
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "node \"${CLAUDE_PROJECT_DIR:-.}/scripts/review-blog-figures.mjs\" --hook 2>/dev/null || true",
"timeout": 30,
"statusMessage": "Checking whether the figures fit"
}
]
}
]
}
}Perilaku yang wajib terjadi: hook. Setelah setiap Write atau Edit, pemeriksaan gambar berjalan terlepas Claude ingat atau tidak. Hook ini hanya memberi saran, tetapi pemicunya terjamin, dan tidak memakan konteks kecuali skripnya mengembalikan output.
`HubBacklink` (in the blog `[slug]` layout) links an article back to every hub that lists
it. `.dev/review/indonesia-posts-accuracy-2026-10-12.md` tracks which posts still disagree
with current sources.Memori bersama yang disimpan repo sendiri: catatan di git yang dirujuk dari CLAUDE.md. Fakta seperti post mana yang masih berbeda dari sumber terkini berubah seiring waktu dan milik semua orang, jadi di-commit, bukan diserahkan ke auto memory satu mesin.
Kesalahan yang benar-benar membuang waktu
Aturan wajib hanya ditulis di CLAUDE.md
Instruksi seperti jangan edit file ini di CLAUDE.md atau skill adalah permintaan, bukan jaminan. Kalau melanggarnya mahal, tegakkan dengan hook PreToolUse atau pemeriksaan build yang gagal, dan simpan kalimatnya hanya untuk menjelaskan alasannya.
CLAUDE.md yang terus membesar
Dokumentasi menargetkan di bawah 200 baris per CLAUDE.md, karena file yang lebih panjang memakan konteks dan menurunkan kepatuhan. CLAUDE.md repo ini sendiri lebih dari 600 baris, jadi anggap itu peringatan, bukan teladan: panduan untuk satu bagian saja bisa dipindahkan ke skill atau rules berbasis path. Import membantu merapikan file tetapi tidak mengurangi biaya konteksnya.
Deskripsi skill yang kabur
Claude mencocokkan tugas Anda dengan deskripsi skill. Kalau kabur atau tumpang tindih, Claude bisa memuat skill yang salah atau melewatkan yang tepat. Sebut file, perintah, dan frasa yang akan muncul di permintaan, atau panggil sendiri skill-nya dengan /nama.
Pengetahuan tim hanya di auto memory
Auto memory bersifat lokal di mesin. Rekan tim tidak pernah melihatnya, laptop kedua punya miliknya sendiri, dan semua yang melewati 200 baris atau 25KB pertama MEMORY.md tidak dimuat saat sesi dimulai. Kalau sebuah fakta harus sampai ke orang atau mesin lain, taruh di file yang di-commit.
| Tempat | Kapan Claude melihatnya | Siapa yang menulis | Dibagikan lewat git? | Ditegakkan? |
|---|---|---|---|---|
| CLAUDE.md | Setiap sesi, penuh | Anda | Ya | Tidak, hanya konteks |
| Rules di .claude/rules | Setiap sesi, atau saat file yang cocok dibuka | Anda | Ya | Tidak, hanya konteks |
| Skill atau file command | Deskripsi selalu; teks penuh saat dipakai | Anda | Ya, jika di-commit | Tidak, Claude menafsirkannya |
| Hook | Pada event-nya, di luar chat | Anda | Ya, di file settings bersama | Ya, pemicunya selalu berjalan |
| Auto memory | 200 baris atau 25KB pertama indeks | Claude | Tidak, lokal di mesin | Tidak, hanya konteks |
Lakukan di komputer Anda sendiri
Anda butuh Claude Code di sebuah repositori git untuk latihan. Anda akan memeriksa apa yang dimuat, membuat satu skill, dan melihatnya mengalahkan file command bernama sama.
Jalankan Claude Code lalu /memory. Perintah itu memungkinkan Anda menelusuri dan membuka file memori, dan memuat toggle auto memory. Catat file mana yang ada di repo Anda dan mana yang ada di folder home.
claude > /memoryBuat skill yang hanya dipanggil manual. disable-model-invocation menjaganya tetap di luar konteks sampai Anda mengetik namanya, dan $ARGUMENTS menerima apa yang Anda ketik sesudahnya.
mkdir -p .claude/skills/release-notes cat > .claude/skills/release-notes/SKILL.md <<'EOF' --- name: release-notes description: Draft release notes from recent commits disable-model-invocation: true --- Summarize the commits since $ARGUMENTS as release notes, grouped by theme. EOFBuat file command dengan nama yang sama dan isi berbeda. Lalu jalankan ulang Claude Code dan ketik /release-notes v1.0. Teks skill yang seharusnya berjalan, karena skill mengalahkan file command.
mkdir -p .claude/commands echo 'List the commits since $ARGUMENTS as a plain bullet list.' > .claude/commands/release-notes.md claude > /release-notes v1.0Pilah lima instruksi milik Anda sendiri dengan tiga pertanyaan: selalu dibutuhkan, kadang dibutuhkan, wajib terjadi. Tulis tempat masing-masing di sampingnya, dan commit hanya yang merupakan pengetahuan tim.
Tiga pertanyaan sebelum lanjut
Pilih jawaban untuk melihat kenapa benar atau salah. Tidak ada yang disimpan atau dinilai, jadi tebak saja dengan bebas.
Jawab dalam hati, lalu cek
1.Tiga pertanyaan apa yang memilah instruksi ke tempatnya?Lihat jawabannya
Jawaban:Apakah Claude membutuhkannya di setiap sesi (CLAUDE.md)? Hanya sesekali untuk satu jenis tugas (skill)? Apakah harus terjadi setiap kali tanpa pertimbangan (hook)? Hal yang dipelajari Claude sendiri saat Anda bekerja masuk ke auto memory.
2.Mengapa hook, bukan CLAUDE.md, tempat untuk aturan yang tidak boleh dilanggar?Lihat jawabannya
Jawaban:CLAUDE.md adalah konteks yang berusaha diikuti Claude, bukan konfigurasi yang ditegakkan. Hook berjalan pada event-nya apa pun keputusan Claude, dan hook PreToolUse bisa memblokir aksinya.
3.Apa yang diubah disable-model-invocation: true pada sebuah skill?Lihat jawabannya
Jawaban:Claude tidak lagi memanggilnya sendiri, dan deskripsinya tidak masuk konteks. Hanya Anda yang bisa menjalankannya lewat /nama, cocok untuk alur kerja dengan efek samping.
Bahasan mendalam terkait di situs ini
Sumber
Sumber primer yang diperiksa pada tanggal riset. Ikuti tautannya untuk versi terbaru.