/goal di Claude Code: Kerjaan Selesai Tanpa Disuruh Tiap Turn
Fitur /goal di Claude Code. Kasih kondisi 'kerjaan selesai kalo X', dia kerja sampe X tercapai. Berhenti suruh dia 'lanjut, lanjut, lanjut' tiap kali.
Pakai skill ini
SKILL.md · Claude Code
Download .md untuk di-paste ke chat AI, atau .zip yang isinya folder skill siap drop ke Claude Code .claude/skills/.
Cara install di Claude Code ↓
# Drop ZIP ke folder project Claude Code:
mkdir -p .claude/skills
cd .claude/skills
unzip ~/Downloads/goal-claude-code.zip
# Restart Claude Code. Skill auto-loaded. Kamu pernah ngerasa kayak gini pas pakai AI: dia kerja 1 step, balikin hasil, kamu bilang “lanjut”. Dia kerja lagi 1 step, balikin, “lanjut”. Bolak-balik 30 kali sampe selesai.
Capek. Gak fokus. Kamu cuma jadi tombol “next, next, next.”
Claude Code (versi 2.1.139 ke atas) punya fitur namanya /goal. Kamu kasih dia kondisi “kerjaan selesai kalo X”, dia kerja terus tanpa disuruh tiap turn — sampe X tercapai.
Skill pack ini ngejelasin: apa itu, kapan dipake, contoh konkret.
Pakai Analogi: Pesen Mie Goreng
Bayangin kamu pesen mie goreng ke pembantu. Cara biasa:
Kamu: “Tolong masak mie.” Pembantu: “Mie udah keluar dari bungkus.” Kamu: “Ya udah lanjut.” Pembantu: “Air udah dididih.” Kamu: “Lanjut.” Pembantu: “Mie udah dimasukin air.” Kamu: “Lanjut.”
30 menit kamu cuma jadi tombol lanjut. Capek.
Cara pake /goal:
Kamu: “Mienya siap di meja dengan telor, sambel, kerupuk. Kerjain sampe selesai. Lapor pas udah.” Pembantu: [kerja sendiri 15 menit] “Selesai. Mienya di meja.”
Bedanya: kamu kasih kondisi akhir yang jelas, dia kerja sampe kondisi itu tercapai.
Kapan Dipake
/goal cocok untuk kerjaan yang punya akhir yang bisa dicek. Bukan kerjaan kreatif yang harus kamu approve tiap langkah.
| ✅ Cocok Pake /goal | ❌ Gak Cocok |
|---|---|
Semua test di folder test/auth pass | ”Bikin desain yang bagus” (subjektif) |
| File yang lebih dari 500 baris dipotong jadi modul kecil | ”Tulis artikel yang menarik” (kamu harus baca tiap draft) |
Semua todo di file TASKS.md selesai | ”Pikirin strategi marketing” (butuh diskusi kamu) |
Semua merge conflict di branch feature-x resolved | ”Eksplor opsi untuk fitur baru” (open-ended) |
Antrian PR yang label-nya easy-fix udah habis | ”Bikin yang elegan dan modern” (taste call) |
Pola: kalo kamu bisa nulis kondisi “selesai kalo X” dengan X yang bisa dicek otomatis, pake /goal. Kalo gak, jangan.
Cara Pake
Buka Claude Code di terminal. Ketik:
/goal semua test di folder test/auth pass dan lint clean
Dia langsung mulai kerja. Tiap habis 1 turn, ada model kecil yang cek: “udah selesai belom?” Kalo belom, dia kerja lagi. Kalo udah, otomatis berhenti.
Cek progress:
/goal
(Tanpa argument.) Liat: kondisi, udah berapa lama jalan, udah berapa turn, alasan kenapa belom selesai.
Berhentiin paksa:
/goal clear
Boleh juga: /goal stop, /goal off, /goal cancel.
Cara Nulis Kondisi yang Bagus
Kondisi yang bagus punya 3 hal:
| Komponen | Apa Maksudnya | Contoh |
|---|---|---|
| Akhir yang bisa diukur | Hal yang jelas selesai atau belum | ”Test pass”, “exit code 0”, “file < 200 baris” |
| Cara cek | Gimana Claude bukti selesai | "npm test exits 0", "git status clean" |
| Batasan | Hal yang gak boleh berubah | ”Gak ada test file lain yang dimodifikasi” |
Plus opsional batas turn biar gak running selamanya:
/goal refactor semua function di src/utils jadi typed, atau stop setelah 20 turn
Anti-pattern kondisi:
| ❌ Kondisi Jelek | ✅ Kondisi Bagus |
|---|---|
| ”Bagus" | "Test pass + lint clean" |
| "Selesai" | "File TASKS.md kosong" |
| "Kayaknya udah" | "npm run build exits 0" |
| "User happy" | "Semua acceptance criteria di design doc tercentang” |
Kuncinya: yang ngecek itu model AI yang baca conversation. Jadi buktinya harus ada di conversation. Test result keluar di terminal output → bisa dicek. “User puas” gak ada di output → gak bisa dicek.
Contoh Konkret Per Skenario
Skenario 1: Migrasi API Lama ke Baru
/goal semua import dari module 'old-auth' diganti ke 'new-auth',
semua test pass, dan lint clean
Claude bakal scan semua file, ganti import satu-satu, jalanin test tiap putaran sampe semuanya hijau.
Skenario 2: Pecah File Besar Jadi Modul
/goal file src/utils/helpers.ts dipecah jadi file-file lebih kecil,
masing-masing maksimal 200 baris, dan semua import yang refer
ke helpers.ts udah update ke file baru, dan test pass
Skenario 3: Habiskan Antrian Todo
/goal semua todo di TASKS.md yang ditag [easy] udah dicentang,
atau stop setelah 15 turn
Skenario 4: Resolve Merge Conflict
/goal semua merge conflict di branch ini resolved, git status clean,
dan semua test pass
Skenario 5: Bikin CHANGELOG dari Commit
/goal CHANGELOG.md punya entry untuk setiap PR yang di-merge minggu ini
Skenario 6: Cleanup Sampah Tech Debt
/goal semua console.log() di src/ udah dihapus, semua function
yang tidak dipake udah dihapus, dan test masih pass
Mode Non-Interactive (Run di Background)
Kamu bisa jalanin /goal dari terminal tanpa harus duduk di depan terminal:
claude -p "/goal semua test di test/payment pass dan tidak ada console.log baru"
Dia jalan sampe selesai. Hasilnya keluar di terminal. Kamu bisa lakuin hal lain.
Use case:
- Run sebelum tidur, paginya hasil udah ada
- Run sambil meeting, balik udah kelar
- Run di CI/CD sebagai check otomatis
Hentikan: Ctrl+C.
Perbandingan: /goal vs /loop vs Stop Hook
Tiga cara biar Claude Code kerja terus tanpa kamu suruh tiap step:
| Cara | Trigger Next Turn | Stop Kapan |
|---|---|---|
/goal | Tiap habis turn, evaluator cek kondisi | Kondisi terpenuhi |
/loop | Interval waktu (mis. tiap 5 menit) | Kamu hentikan atau Claude bilang done |
| Stop hook | Tiap habis turn, jalanin script kamu sendiri | Script kamu yang decide |
Pilih /goal kalo: ada akhir yang bisa dicek model.
Pilih /loop kalo: mau jalanin sesuatu berulang tiap interval (mis. polling deployment, cek news feed tiap jam).
Pilih Stop hook kalo: butuh logic custom yang gak bisa di-judge model (mis. cek file system, query database, hit API spesifik).
Trade-Off + Batasan
Hal yang harus kamu tau sebelum pake:
- Goal cuma 1 per session. Set goal baru, goal lama keganti.
- Evaluator gak run command sendiri. Dia cuma baca conversation. Jadi kalo Claude gak surface bukti (gak run test, gak print status), evaluator gak bisa decide.
- Max kondisi 4000 karakter. Jangan overcomplicate.
- Token billing. Tiap evaluator check pake token (model kecil, hemat). Tapi kalo goal-nya susah dicapai dan run 100 turn, tetep ke-billing.
- Workspace harus trusted. Pas pertama buka workspace, klik “trust this workspace” dulu.
Workflow Anjuran
- Set kondisi yang spesifik — 1 akhir + cara cek + batasan
- Tambahin batas turn kalo kamu khawatir over-run —
or stop after 20 turns - Mulai goal, biarin jalan
- Cek
/goalkalo penasaran progress - Goal otomatis clear pas kondisi tercapai
- Kalo drift ke arah salah,
/goal clear, set ulang dengan kondisi lebih ketat
Buat Siapa
- Developer yang udah pake Claude Code harian, capek tiap turn nge-prompt “lanjut”
- Yang punya kerjaan repetitive dengan akhir jelas (test pass, queue empty, dll)
- Yang mau Claude jalan sambil kamu meeting / tidur
Bukan untuk:
- Pemula yang baru kenal AI (mulai dari sesi 0)
- Kerjaan kreatif yang butuh taste call kamu tiap step
- Hal yang gak bisa diukur “selesai”-nya
Yang murah sekarang: AI nge-execute step. Yang masih mahal: kamu nge-define apa itu “selesai”. /goal cuma kasih leverage kalo definisi “selesai”-nya bener.