Definisikan slash command yang dapat digunakan ulang sebagai file Markdown, bagikan ke seluruh tim via git, dan tangani tugas frekuensi tinggi seperti code review, pembuatan test, dan deskripsi PR.
Claude Code dilengkapi beberapa slash command bawaan — /help, /clear, /compact. Tapi yang benar-benar mempercepat alur kerja adalah yang kamu tulis sendiri.
Artikel ini membahas cara merancang sistem slash command yang dapat digunakan ulang, sehingga seluruh tim bisa berbagi perpustakaan prompt yang sama — bukan mendeskripsikan tugas dari awal setiap kali.
Di Claude Code, slash command kustom hanyalah sebuah file Markdown. Taruh di direktori yang tepat, Claude Code mendeteksinya saat startup, dan mengetik /nama-file akan memicunya.
Isi file adalah prompt yang dikirim ke Claude. Hanya itu.
Tidak ada sintaks khusus, tidak ada format konfigurasi — satu file .md adalah satu perintah.
Dua lokasi, dua tujuan:
| Lokasi | Path | Cakupan |
|---|---|---|
| Proyek | .claude/commands/ |
Hanya proyek saat ini, bisa di-commit ke git |
| Pengguna | ~/.claude/commands/ |
Semua proyek, personal |
Tingkat proyek adalah inti dari berbagi dalam tim. Commit .claude/commands/ ke git dan semua orang yang meng-clone repositori otomatis mendapatkan seluruh set perintah.
Tingkat pengguna cocok untuk kebiasaan pribadi — pemeriksaan gaya kode yang kamu sukai atau integrasi alat yang hanya kamu gunakan.
Dari root proyek:
mkdir -p .claude/commands
Buat .claude/commands/review.md:
Tinjau kualitas kode dari perubahan saat ini. Fokus pada:
1. Kesalahan logika dan kasus tepi
2. Apakah penamaan sudah jelas
3. Kode duplikat yang layak diekstrak
4. Masalah keamanan (SQL injection, XSS, rahasia yang terekspos)
Berikan saran yang konkret dan bisa ditindaklanjuti — bukan saran umum.
Restart Claude Code dan ketik /review untuk memicunya.
Perintah dengan konten tetap memiliki kegunaan terbatas. $ARGUMENTS membuatnya fleksibel — apa yang pengguna ketik setelah /perintah akan dimasukkan ke dalam prompt.
Contoh .claude/commands/test.md:
Tulis test untuk berikut ini: $ARGUMENTS
Persyaratan:
- Cakup jalur normal dan kasus tepi
- Nama test harus bisa menjelaskan dirinya sendiri
- Gunakan data nyata daripada mock jika memungkinkan
Penggunaan:
/test metode login pada kelas UserAuthentication
Claude menerima:
Tulis test untuk berikut ini: metode login pada kelas UserAuthentication
Persyaratan:
...
$ARGUMENTS bisa muncul di mana saja dalam prompt dan bisa digunakan beberapa kali.
Satu command, satu tanggung jawab
Jangan buat command "serbaguna" yang menangani segalanya. /review untuk code review, /test untuk menulis test, /pr untuk deskripsi PR. Command yang spesifik lebih mudah diingat dan digunakan ulang.
Tulis prompt yang konkret, bukan abstrak
Buruk:
Bantu saya mengoptimalkan kode ini
Baik:
```
Optimalkan kode ini untuk performa. Prioritaskan:
1. Mengurangi query database yang tidak perlu (masalah N+1)
2. Menghindari komputasi berulang di dalam loop
3. Mengganti pencarian linear dengan struktur data yang lebih efisien
Biarkan antarmuka tidak berubah — hanya ubah implementasi.
```
Batasan yang konkret menghasilkan hasil yang tepat sasaran.
Tambahkan frontmatter ke command kamu
Field description muncul di daftar perintah Claude Code, sehingga anggota tim bisa langsung memahami kegunaan setiap command:
---
description: Tinjau perubahan saat ini untuk umpan balik kualitas kode
---
Tinjau kualitas kode dari perubahan saat ini...
Untuk proyek Rails, command-command ini mencakup tugas pengembangan harian yang paling umum:
.claude/commands/review.md — Code review
Tinjau perubahan di git diff. Periksa:
- Kesalahan logika dan penanganan kasus tepi
- Masalah keamanan: SQL injection, pemeriksaan otorisasi
- Kejelasan penamaan
- Logika duplikat yang layak diekstrak
Untuk setiap masalah, berikan lokasi spesifik dan saran yang konkret.
```
.claude/commands/test.md — Generate test
Tulis test untuk kode ini: $ARGUMENTS
Gunakan RSpec. Cakup: jalur normal, kasus tepi, kondisi error.
Format penamaan: describe ... context ... it ...
Gunakan objek nyata secara default; mock hanya dependensi eksternal jika diperlukan.
```
.claude/commands/pr.md — Deskripsi PR
Berdasarkan git diff dan log commit, buat deskripsi PR.
Format:
(2-3 kalimat merangkum apa yang dilakukan)
(Konteks dan motivasi)
(Cara memverifikasi perubahan ini)
Ringkas, ditulis untuk code reviewer.
```
.claude/commands/explain.md — Jelaskan kode
Jelaskan apa yang dilakukan $ARGUMENTS:
- Apa tanggung jawab keseluruhannya?
- Bagaimana logika utamanya bekerja?
- Kasus tepi apa yang perlu diperhatikan?
Tulis untuk developer yang baru mengenal bagian kode ini. Fokus pada mengapa, bukan hanya apa.
```
Beberapa kebiasaan bersifat personal dan tidak perlu dipaksakan ke seluruh tim. Taruh di ~/.claude/commands/:
~/.claude/commands/standup.md — Persiapan standup harian
```markdown
Berdasarkan git log hari ini dan TODO yang belum selesai, buat ringkasan standup:
- Apa yang saya selesaikan kemarin
- Apa yang saya rencanakan hari ini
- Apakah ada blocker
Maksimal 5 kalimat.
```
~/.claude/commands/refactor.md — Saran refactoring
```markdown
Analisis $ARGUMENTS dan sarankan perbaikan refactoring.
Hanya angkat perubahan yang benar-benar bernilai — jangan refactoring demi refactoring.
Untuk setiap saran, jelaskan: masalah apa yang diselesaikan, seberapa besar pekerjaannya, dan apa risikonya.
```
Nilai sebenarnya dari command kustom bukan produktivitas pribadi — melainkan memberi tim kosakata bersama.
Commit .claude/commands/ ke repositori dan dokumentasikan command yang tersedia di README atau CLAUDE.md kamu. Anggota tim baru mendapatkan perpustakaan prompt yang telah dikumpulkan tim begitu mereka meng-clone repo, tanpa perlu mencari tahu sendiri.
Seiring berkembangnya proyek, command pun berkembang. Jika sebuah prompt tidak bekerja dengan baik, perbaiki satu baris dan push — seluruh tim mendapat pembaruan. Ini adalah cara dengan biaya paling rendah untuk menerapkan rekayasa prompt di tingkat tim.
.claude/
├── commands/
│ ├── review.md # Code review
│ ├── test.md # Generate test
│ ├── pr.md # Deskripsi PR
│ └── explain.md # Jelaskan kode
└── settings.json