84 poin oleh GN⁺ 2025-11-03 | Belum ada komentar. | Bagikan ke WhatsApp
  • Claude Code digunakan secara luas untuk proyek pribadi maupun lingkungan monorepo perusahaan, dengan rangkuman tentang komponen inti dan cara nyata menggunakan fitur-fitur lanjutannya
  • Kunci pengoperasian agen yang efektif ada pada kualitas PR akhir, bukan gaya output atau UI, dengan tujuan delegasi bergaya "setel lalu tinggalkan (shoot and forget)"
  • Pusat dari codebase adalah file CLAUDE.md, yang berperan sebagai “konstitusi” untuk mendefinisikan aturan perilaku agen dan cara penggunaan alat
  • Tingkat kolaborasi dan otomatisasi ditingkatkan melalui berbagai fitur seperti manajemen konteks, perintah slash, subagen, Hooks, dan GitHub Action (GHA)
  • Hubungan antara Skills dan MCP (Model Context Protocol) dibedakan dengan jelas, sambil menekankan struktur agen yang fleksibel dan berfokus pada scripting
  • Menyediakan panduan praktis untuk memperluas Claude Code dari sekadar alat CLI menjadi infrastruktur pengembangan AI kelas enterprise

  • Sangat sering menggunakan Claude Code
    • Untuk proyek hobi, dijalankan di VM beberapa kali seminggu, memakai --dangerously-skip-permissions agar ide yang muncul bisa langsung diwujudkan menjadi kode
    • Untuk pekerjaan, tim membangun aturan dan alat AI-IDE, dan tim engineering kami menghabiskan puluhan miliar token per bulan hanya untuk pembuatan kode
  • Pasar agen CLI ramai dengan Claude Code, Gemini CLI, Cursor, dan Codex CLI, tetapi persaingan yang nyata pada dasarnya hanya antara Anthropic dan OpenAI
    • Namun jika berbicara dengan para developer, pemilihan alat sering bergantung pada faktor permukaan
      • Seperti implementasi fitur yang "beruntung" atau "vibe" dari system prompt yang disukai
    • Pada titik ini, semua alat tersebut sebenarnya sudah cukup bagus
  • Sebagian orang terlalu berfokus pada gaya output atau UI
    • Sanjungan seperti "you're absolutely right!" bukan bug yang benar-benar penting
    • Justru itu tanda bahwa pengguna terlalu terlibat dalam loop
  • Filsafat penggunaan inti saya adalah "Shoot and Forget"
    • Prosesnya berjalan dalam urutan delegasi, penyiapan konteks, pelaksanaan tugas
    • Alat dinilai dari PR akhirnya, dievaluasi berdasarkan hasil, bukan proses menuju ke sana
  • Tulisan ini adalah refleksi atas seluruh ekosistem berdasarkan pengalaman beberapa bulan menggunakan Claude Code
    • Hampir semua fitur yang saya gunakan (dan yang tidak saya gunakan)
    • File CLAUDE.md dasar
    • Perintah slash kustom
    • Dunia Subagent, Hook, dan GitHub Actions yang kuat
  • Karena artikelnya cukup panjang, lebih disarankan dipakai sebagai referensi daripada dibaca seluruhnya

CLAUDE.md: konstitusi agen

  • CLAUDE.md di root adalah sumber kebenaran utama bagi agen tentang cara repository bekerja
    • Proyek hobi: biarkan Claude menulisnya dengan bebas sesuai keinginannya
    • Monorepo enterprise: dikelola ketat dengan ukuran sekitar 13KB (bisa diperluas hingga 25KB)
    • Hanya alat yang digunakan oleh lebih dari 30% engineer yang didokumentasikan
    • Jumlah token maksimum dialokasikan untuk dokumentasi tiap alat internal (modelnya seperti menjual "ruang iklan")
    • Jika suatu alat tidak bisa dijelaskan secara ringkas, berarti CLAUDE.md untuk alat itu belum siap
  • Tip dan antipola umum

    • Mulai dari guardrail, bukan manual: mulai dokumentasi kecil berdasarkan hal-hal yang sering salah dilakukan Claude
    • Jangan dokumentasikan file @
      • Jika dokumen besar di tempat lain disebut dengan @, seluruh file akan di-embed ke context window di setiap eksekusi dan membuatnya membengkak
      • Jika hanya menyebut path-nya saja, Claude cenderung mengabaikannya
      • Anda perlu "menyarankan" kepada agen alasan dan kapan file itu perlu dibaca
      • Contoh: "Untuk penggunaan kompleks atau jika muncul FooBarError, lihat path/to/docs.md untuk troubleshooting lanjutan"
    • Jangan hanya mengatakan "sama sekali tidak boleh"
      • Hindari batasan negatif seperti "jangan pernah gunakan flag --foo-bar"
      • Agen akan buntu saat merasa perlu memakai flag tersebut
      • Selalu sediakan alternatif
    • Gunakan CLAUDE.md sebagai forcing function
      • Jika perintah CLI rumit dan bertele-tele, jangan menambalnya dengan paragraf penjelasan (itu hanya memperbaiki masalah manusia)
      • Sebagai gantinya, buat bash wrapper sederhana dengan API yang jelas dan intuitif, lalu dokumentasikan wrapper tersebut
      • Menjaga CLAUDE.md tetap sesingkat mungkin adalah forcing function yang luar biasa untuk menyederhanakan codebase dan alat internal
  • Struktur contoh

    # Monorepo  
    
    ## Python  
    - Always ...  
    - Test with <command>  
    ... 10개 항목 ...  
    
    ## <Internal CLI Tool>  
    ... 80% 사용 사례에 집중한 10개 불릿 ...  
    - <usage example>  
    - Always ...  
    - Never <x>, prefer <Y>  
    
    복잡한 사용법이나 오류 시 path/to/<tool>_docs.md 참조  
    
  • Disinkronkan dengan file AGENTS.md agar tetap kompatibel dengan AI IDE lain yang digunakan engineer
  • Tip tambahan: lihat "AI Can't Read Your Docs", "AI-powered Software Engineering", "How Cursor (AI IDE) Works"

Compact, Context, Clear: manajemen context window

  • Gunakan perintah /context untuk memeriksa penggunaan context window 200k token
    • Bahkan di Sonnet-1M pun belum jelas apakah seluruh context window benar-benar dimanfaatkan secara efektif
    • Sesi baru monorepo secara default menghabiskan sekitar 20k token (10%), dan sisa 180k dipakai untuk pekerjaan perubahan (cepat habis)
  • Tiga workflow utama
    • /compact (dihindari): kompresi otomatis kurang transparan, bisa menimbulkan kesalahan, dan kurang optimal, jadi sebisa mungkin dihindari
    • /clear + /catchup (restart sederhana): cara reboot default, hapus status dengan /clear lalu gunakan /catchup kustom untuk membaca semua file yang berubah di branch git
    • "Document & Clear" (restart kompleks): untuk pekerjaan besar, Claude membuang rencana dan progres ke .md/clear → di sesi baru baca .md lalu lanjutkan

Perintah slash kustom

  • Perintah slash hanyalah shortcut sederhana untuk prompt yang sering dipakai, tidak lebih dan tidak kurang
  • Konfigurasi minimum
    • /catchup: prompt untuk membaca semua file yang berubah di branch git
    • /pr: helper untuk merapikan kode, staging, dan menyiapkan PR
  • Daftar panjang perintah kustom yang rumit adalah antipola
    • Kekuatan inti agen seperti Claude: mampu menghasilkan hasil yang berguna dan bisa digabungkan dari hampir semua input bahasa alami
    • Memaksa engineer (atau non-engineer) mempelajari daftar wajib "perintah ajaib" untuk menyelesaikan pekerjaan = gagal
    • Tujuannya adalah membangun agen dengan CLAUDE.md yang lebih intuitif dan alat yang lebih baik

Subagent Kustom

  • Secara teori, fitur manajemen konteks yang kuat
    • Tugas kompleks: konteks input X token + konteks kerja Y token + jawaban Z token
    • N tugas = (X + Y + Z) * N token di jendela utama
    • Solusi Subagent: delegasikan tugas (X + Y) * N ke agen khusus, lalu hanya kembalikan jawaban akhir Z token
  • Dalam praktiknya, Subagent kustom menciptakan dua masalah baru
    • Context gatekeeping: saat membuat Subagent PythonTests, semua konteks pengujian disembunyikan dari agen utama → penalaran menyeluruh jadi tidak mungkin → terpaksa memanggil Subagent hanya untuk mengetahui cara memverifikasi kodenya sendiri
    • Memaksakan workflow manusia: memaksa Claude mengikuti workflow kaku yang didefinisikan manusia → memberi instruksi cara mendelegasikan = justru masalah yang seharusnya diselesaikan agen itu sendiri
  • Secara pribadi saya lebih menyukai fitur Task(...)

    • Buat klon agen serbaguna dengan fitur bawaan Task(...) milik Claude
      • Tempatkan semua konteks inti di CLAUDE.md
      • Agen utama menentukan kapan dan bagaimana mendelegasikan tugas ke salinannya sendiri
      • Tetap mempertahankan manfaat penghematan konteks dari Subagent sambil menghilangkan kekurangannya
      • Agen mengelola orkestrasi dirinya sendiri secara dinamis
    • Disebut arsitektur "Master-Clone" dalam "Building Multi-Agent Systems (Part 2)"
      • Jauh lebih disukai dibanding model "Lead-Specialist" yang didorong oleh Subagent kustom

Resume, Continue, History

  • Penggunaan dasar
    • Sering menggunakan claude --resume dan claude --continue
    • Restart terminal yang bug atau reboot cepat sesi lama
    • Menjalankan claude --resume pada sesi beberapa hari lalu untuk merangkum cara mengatasi error tertentu → memperbaiki CLAUDE.md dan alat internal
  • Penggunaan lanjutan
    • Claude Code menyimpan seluruh riwayat sesi di ~/.claude/projects/
    • Memiliki skrip yang memanfaatkan data sesi riwayat mentah
    • Menjalankan meta-analisis pada log: mencari exception umum, permintaan izin, pola error → meningkatkan konteks yang ditargetkan untuk agen

Hooks

  • Sangat penting di repo enterprise: tidak dipakai pada proyek hobi
  • Aturan "must-do" deterministik yang melengkapi saran "should-do" di CLAUDE.md
  • Dua jenis
    • Hook pemblokiran tahap commit (Block-at-Submit): strategi utama
      • Membungkus semua perintah Bash(git commit) dengan Hook PreToolUse
      • Memeriksa file /tmp/agent-pre-commit-pass (dibuat hanya jika skrip test meloloskan semua test)
      • Jika file tidak ada, commit diblokir → memaksa Claude masuk ke loop "test-fix" sampai build berhasil
    • Hook petunjuk: Hook non-pemblokiran sederhana yang memberi umpan balik "fire-and-forget" saat agen melakukan opsi terbaik kedua
  • Sengaja tidak memakai Hook pemblokiran tahap penulisan (saat Edit atau Write)
    • Memblokir agen di tengah rencana dapat menimbulkan kebingungan atau "frustrasi"
    • Jauh lebih efektif memverifikasi hasil akhir yang sudah selesai pada tahap commit setelah pekerjaan selesai

Mode perencanaan

  • Saat melakukan perubahan fitur "besar" dengan AI IDE, perencanaan itu wajib
  • Proyek hobi: hanya memakai mode perencanaan bawaan
    • Menyelaraskan pendekatan sebelum memulai Claude
    • Mendefinisikan cara build serta "checkpoint pemeriksaan" saat pekerjaan harus dihentikan dan hasil ditampilkan
    • Pemakaian rutin membangun intuisi yang kuat tentang konteks minimum yang dibutuhkan agar Claude menghasilkan rencana yang baik tanpa merusak implementasi
  • Monorepo enterprise: mulai meluncurkan alat perencanaan kustom berbasis Claude Code SDK
    • Mirip mode plan native, tetapi dengan prompt yang difokuskan agar output selaras dengan format desain teknis yang sudah ada
    • Menegakkan praktik terbaik internal secara bawaan (mulai dari struktur kode hingga privasi data dan keamanan)
    • Memungkinkan engineer membuat "vibe plan" fitur baru layaknya arsitek senior (setidaknya itu idenya)

Skills

  • Setuju dengan pendapat Simon Willison: Skills (mungkin) adalah hal yang lebih besar daripada MCP
  • Evolusi 3 tahap model mental otonomi agen
    • Single Prompt: memberikan semua konteks kepada agen dalam satu prompt raksasa (rapuh, tidak bisa diskalakan)
    • Tool Calling: model agen "klasik", membuat tool secara manual dan abstraksi realitas untuk agen (membaik, tetapi menciptakan abstraksi baru dan bottleneck konteks)
    • Scripting: memberi agen akses ke lingkungan mentah (binary, script, dokumentasi) → agen menulis kode secara langsung untuk berinteraksi
  • Agent Skills adalah fitur berikutnya yang jelas: produk resmi dari lapisan "Scripting"
  • Jika lebih memilih CLI daripada MCP, berarti Anda sudah secara implisit mendapatkan manfaat Skills
    • File SKILL.md adalah cara yang lebih terorganisasi, bisa dibagikan, dan mudah ditemukan untuk mendokumentasikan CLI dan script ini lalu mengeksposnya ke agen
  • Skills adalah abstraksi yang tepat: meresmikan model agen berbasis "scripting" yang lebih tangguh dan fleksibel dibanding model kaku mirip API yang direpresentasikan MCP

MCP (Model Context Protocol)

  • Adanya Skills tidak berarti MCP mati (lihat "Everything Wrong with MCP")
  • Masalah sebelumnya: banyak orang membangun MCP yang buruk dan berat konteks dengan puluhan tool yang mencerminkan REST API (read_thing_a(), read_thing_b(), update_thing_c())
  • Model "Scripting" (yang diresmikan lewat Skills) adalah pendekatan yang lebih baik, tetapi tetap membutuhkan cara aman untuk mengakses lingkungan → di sinilah peran baru MCP
  • Peran baru MCP: gateway data

    • Alih-alih API yang gemuk, berikan beberapa tool tingkat tinggi yang kuat dalam bentuk gateway yang sederhana dan aman
      • download_raw_data(filters…)
      • take_sensitive_gated_action(args…)
      • execute_code_in_environment_with_state(code…)
    • Peran MCP: mengelola autentikasi, jaringan, dan batas keamanan, bukan menjadi abstraksi realitas untuk agen, lalu tidak ikut campur lebih jauh
      • Menyediakan titik masuk bagi agen → agen melakukan pekerjaan sebenarnya dengan scripting dan konteks markdown
    • Satu-satunya MCP yang saat ini dipakai: Playwright (masuk akal karena lingkungannya kompleks dan stateful)
      • Semua tool stateless (Jira, AWS, GitHub) dimigrasikan ke CLI sederhana

Claude Code SDK

  • Claude Code bukan hanya CLI interaktif, tetapi juga SDK yang sangat kuat untuk membangun agen yang benar-benar baru, baik untuk tugas coding maupun non-coding
  • Pada sebagian besar proyek hobi baru, mulai digunakan sebagai framework agen default alih-alih alat seperti LangChain/CrewAI
  • Tiga cara penggunaan utama
    • Scripting paralel berskala besar: saat refactoring besar-besaran, perbaikan bug, atau migrasi, tanpa memakai chat interaktif
      • Tulis skrip bash sederhana yang memanggil claude -p &quot;in /pathA change all refs from foo to bar&quot; secara paralel
      • Jauh lebih skalabel dan mudah dikendalikan dibanding membuat agen utama mengelola puluhan tugas subagent
    • Membangun alat chat internal: sempurna untuk membungkus proses kompleks dalam antarmuka chat sederhana bagi pengguna nonteknis
      • Contoh: installer yang saat terjadi error melakukan fallback ke Claude Code SDK untuk menyelesaikan masalah pengguna
      • Contoh: alat internal "v0-at-home" yang memungkinkan tim desain melakukan vibe-code frontend mockup dengan framework UI internal perusahaan (menjamin fidelitas ide yang tinggi dan bisa digunakan lebih langsung dalam kode frontend production)
    • Prototyping agen cepat: kasus penggunaan paling umum, tidak terbatas untuk coding
      • Saat ada ide pekerjaan agen (misalnya "agen investigasi ancaman" yang memakai CLI kustom atau MCP)
      • Bangun dan uji prototipe dengan cepat memakai Claude Code SDK sebelum commit scaffolding deployment penuh

Claude Code GitHub Action (GHA)

  • Salah satu fitur favorit dan paling diremehkan: konsepnya sederhana (menjalankan Claude Code di GHA), tetapi justru kesederhanaan ini yang menjadi sumber kekuatannya
  • Mirip dengan background agent Cursor atau UI web terkelola Codex, tetapi jauh lebih bisa dikustomisasi
    • Kontrol penuh atas container dan environment → akses data lebih baik
    • Kontrol sandboxing dan audit yang jauh lebih kuat dibanding produk lain
    • Mendukung semua fitur lanjutan seperti Hook dan MCP
  • Kasus penggunaan

    • Membangun alat "PR dari mana saja" kustom
      • Bisa memicu PR dari Slack, Jira, bahkan notifikasi CloudWatch
      • GHA mengembalikan PR yang sudah diuji sepenuhnya setelah memperbaiki bug atau menambahkan fitur
    • Flywheel berbasis data
      • Log GHA = log agen lengkap
      • Tinjau log secara rutin di tingkat perusahaan: temukan kesalahan umum, error bash, dan praktik engineering yang belum selaras
      • Flywheel: bug → perbaikan CLAUDE.md/CLI → agen yang lebih baik
      • $ query-claude-gha-logs --since 5d | claude -p &quot;see what the other claudes were getting stuck on and fix it, then put up a PR&quot;

settings.json

  • Konfigurasi tertentu yang penting untuk pekerjaan hobi maupun kerja
  • HTTPS_PROXY/HTTP_PROXY: untuk debugging
    • Periksa traffic mentah untuk melihat prompt persis yang dikirim Claude
    • Untuk background agent, ini alat yang kuat untuk sandboxing jaringan yang rinci
  • MCP_TOOL_TIMEOUT/BASH_MAX_TIMEOUT_MS: naikkan nilainya
    • Lebih suka menjalankan perintah yang panjang dan kompleks, dan timeout default sering terlalu konservatif
    • Tidak yakin apakah masih diperlukan setelah tugas background bash, tetapi tetap dipertahankan untuk berjaga-jaga
  • ANTHROPIC_API_KEY: di tempat kerja gunakan enterprise API key (apiKeyHelper)
    • Beralih dari lisensi "per kursi" ke harga "berbasis penggunaan" (model yang jauh lebih baik untuk cara kerja ini)
    • Mengingat perbedaan penggunaan developer yang sangat besar (terlihat perbedaan 1:100 antar engineer)
    • Engineer dapat bereksperimen dengan skrip LLM non-Claude-Code memakai satu akun enterprise yang sama
  • &quot;permissions&quot;: audit mandiri secara berkala daftar perintah yang diizinkan Claude untuk dijalankan otomatis

Penutup

  • Isinya memang banyak, tetapi semoga berguna
  • Jika belum memakai agen berbasis CLI seperti Claude Code atau Codex CLI, Anda sebaiknya mulai menggunakannya
  • Hampir tidak ada panduan bagus untuk fitur-fitur lanjutan ini, dan satu-satunya cara belajar adalah langsung terjun mencobanya

Belum ada komentar.

Belum ada komentar.