Free

Slash Command: Membangun Sistem Perintah yang Dapat Digunakan Ulang di Claude Code

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.

Apa Itu Slash Command Kustom

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.

Di Mana Menyimpan File

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.

Membuat Command Pertama

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.

Menggunakan $ARGUMENTS untuk Menerima Input

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.

Prinsip Desain

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

Set Command Tingkat Proyek yang Praktis

Untuk proyek Rails, command-command ini mencakup tugas pengembangan harian yang paling umum:

.claude/commands/review.md — Code review

```markdown

description: Tinjau perubahan saat ini untuk logika, keamanan, dan keterbacaan

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

```markdown

description: Generate kasus test untuk kode yang ditentukan

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

```markdown

description: Generate judul dan deskripsi PR dari perubahan saat ini

Berdasarkan git diff dan log commit, buat deskripsi PR.

Format:

Apa yang berubah

(2-3 kalimat merangkum apa yang dilakukan)

Mengapa

(Konteks dan motivasi)

Cara menguji

(Cara memverifikasi perubahan ini)

Ringkas, ditulis untuk code reviewer.
```

.claude/commands/explain.md — Jelaskan kode

```markdown

description: Jelaskan apa yang dilakukan file atau fungsi yang ditentukan

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

Command Tingkat Pengguna: Alur Kerja Pribadi

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

Kunci Adopsi Tim: Commit ke Git

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.

Referensi Struktur Direktori

.claude/
├── commands/
│   ├── review.md      # Code review
│   ├── test.md        # Generate test
│   ├── pr.md          # Deskripsi PR
│   └── explain.md     # Jelaskan kode
└── settings.json