AIAI Builder
workflow intermediate

/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:

KomponenApa MaksudnyaContoh
Akhir yang bisa diukurHal yang jelas selesai atau belum”Test pass”, “exit code 0”, “file < 200 baris”
Cara cekGimana Claude bukti selesai"npm test exits 0", "git status clean"
BatasanHal 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:

CaraTrigger Next TurnStop Kapan
/goalTiap habis turn, evaluator cek kondisiKondisi terpenuhi
/loopInterval waktu (mis. tiap 5 menit)Kamu hentikan atau Claude bilang done
Stop hookTiap habis turn, jalanin script kamu sendiriScript 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

  1. Set kondisi yang spesifik — 1 akhir + cara cek + batasan
  2. Tambahin batas turn kalo kamu khawatir over-run — or stop after 20 turns
  3. Mulai goal, biarin jalan
  4. Cek /goal kalo penasaran progress
  5. Goal otomatis clear pas kondisi tercapai
  6. 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.