Apa yang rusak, dan siapa yang kena
Dukungan AGENTS.md yang baru di Claude Code tidak berjalan saat telemetri dimatikan, dan tidak ada peringatan sama sekali. Tulisan Przemek Szypowicz menunjukkan bahwa loader-nya berada di balik feature flag jarak jauh. Mengatur DISABLE_TELEMETRY atau CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC membuat Claude Code berhenti mengambil flag, sehingga loader tidak pernah aktif dan agen tidak pernah melihat instruksi proyek Anda. Tulisan itu masuk halaman depan Hacker News pada 23 September dengan 393 poin dan 221 komentar dalam sekitar enam jam.
Ini penting karena siapa yang terkena: orang yang sengaja memilih privasi, dan orang yang tidak pernah memilih apa pun. Artinya tim yang memakai Bedrock atau Vertex, siapa pun yang lewat gateway pihak ketiga, dan siapa pun yang punya DO_NOT_TRACK di profil shell-nya. Agen mereka berjalan tanpa instruksi proyek dan tidak bilang apa-apa. Engineer Claude Code yang membangun fitur ini mengatakan perbaikannya akan datang di 2.1.281, tetapi saat tulisan ini dibuat, perbaikan itu belum sampai ke versi yang diinstal kebanyakan orang. Jadi tulisan ini menunjukkan cara memeriksa setup Anda dan cara memastikan instruksi Anda termuat di versi mana pun.
Fiturnya sendiri masih baru. Entri changelog 2.1.277 menyebut Claude Code membaca AGENTS.md sebagai pengganti CLAUDE.md "in a project with no CLAUDE.md", yaitu di proyek yang tidak punya CLAUDE.md. Entri yang sama menyebut fitur ini "not yet on Bedrock, Vertex or Foundry", alias belum tersedia di ketiga platform itu. Menurut registry npm, 2.1.277 dirilis pada 18 September.
Cara kerja gerbangnya
Szypowicz membongkar bundle 2.1.280. Pemuatan AGENTS.md ternyata adalah plugin bawaan bernama agents-md, dan nilai isOnByDefault-nya diset false. Tersedia atau tidaknya plugin ini bergantung pada flag jarak jauh, tengu_agents_md_mod. Kalau Claude Code tidak bisa mengambil flag itu, plugin tetap mati.
Tesnya mudah ditiru. Taruh kata kanari di AGENTS.md, lalu tanyakan lewat claude -p:
echo 'The canary word is PERIWINKLE.' > AGENTS.md
claude -p "What is the canary word? Answer with one word."
Kalau agen menjawab PERIWINKLE, file-nya termuat. Kalau agen tidak tahu, file itu tidak pernah masuk ke konteks.
Ini temuannya:
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1danDISABLE_TELEMETRY=1masing-masing memblokir pemuatan.- Mengatur salah satu variabel itu ke 0 tidak membantu. Tampaknya, asal variabelnya ada, pemuatan sudah terblokir.
- Blok
envdi.claude/settings.jsonproyek yang mengosongkan kedua variabel sama sekali tidak berpengaruh. - Tidak satu pun dari kasus ini memunculkan peringatan.
Solusi sementara darinya adalah CLAUDE.md yang mengimpor file tersebut lewat @AGENTS.md, karena impor @path tidak bergantung pada flag. Klaim utamanya layak ditempel di atas sistem feature flag mana pun: pengaturan privasi tidak boleh diam-diam mematikan perilaku lokal yang tidak ada hubungannya dengan privasi.
Issue GitHub #95690 dibuka pada 20 September dengan judul "Claude Code's AGENTS.md Support: A Local Feature Locked Behind a Remote Switch". Issue itu menyebut pengguna gateway pihak ketiga, Bedrock, dan Vertex juga terdampak, dan meminta Anthropic menghapus gating sisi server dari sesuatu yang murni operasi file lokal.
Engineer Anthropic, mpoteat, membalas di thread HN:
Sorry folks, this is a rollout artifact, we needed a way to turn this off remotely via feature flags if it broke something, and with telemetry off you don't get those. It's already been fixed as part of v2.1.281 releasing today.
Singkatnya, menurut dia ini artefak rollout: tim butuh cara mematikan fitur dari jarak jauh lewat feature flag kalau ada yang rusak, dan dengan telemetri mati, flag itu tidak sampai. Ia bilang perbaikannya sudah masuk v2.1.281 yang dirilis hari itu. Di komentar yang sama ia menambahkan bahwa ini "a fully human error" di pihaknya, dan bahwa seharusnya ia mencari cara yang lebih baik untuk meluncurkan fitur dengan kill-switch.
Supaya adil, keterbatasan ini sebenarnya sudah ditulis sejak awal. Dokumentasi memory Anthropic menyebut bahwa di sebagian sesi, misalnya sesi di Amazon Bedrock atau dengan telemetri dimatikan, Claude tidak bisa membaca AGENTS.md. Dokumentasi itu juga menyebut AGENTS.md dilewati pada sesi pertama setelah instalasi atau upgrade. Untuk kasus-kasus itu, mereka menyarankan mengimpor @AGENTS.md dari CLAUDE.md. Tapi satu baris di dokumentasi bukanlah peringatan saat runtime, dan jarang ada yang membaca ulang halaman memory setiap kali upgrade.
Telemetri mati berarti lebih dari sekadar AGENTS.md hilang
Bug-nya sempit, tapi desain di baliknya tidak. Dokumentasi environment variable Anthropic menyebut pengambilan flag dilewati di tiga jenis sesi:
- sesi apa pun yang memasang
DISABLE_GROWTHBOOK,DISABLE_TELEMETRY,DO_NOT_TRACKatauCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC - sesi apa pun di penyedia pihak ketiga seperti Bedrock, Agent Platform milik Google Cloud, atau Microsoft Foundry
- sesi apa pun lewat Claude apps gateway
Saat pengambilan flag mati, AGENTS.md hanyalah satu dari lebih dari selusin fitur yang jadi tidak tersedia. Fitur lain di daftar itu antara lain auto mode bawaan, Remote Control, claude import, advisor tool, skill dan plugin yang tersinkron, serta penyaringan tool MCP yang skemanya akan ditolak API. Yang terakhir itu adalah pengaman, bukan sekadar kemudahan. Kehilangannya berarti kehilangan jaring pengaman, bukan cuma satu fitur.
"Telemetri mati" di Claude Code berarti lebih dari "kirim lebih sedikit data". Artinya juga produk yang lebih kecil, dan tidak ada apa pun di layar yang memberi tahu Anda. Banyak developer memasang DO_NOT_TRACK sekali untuk semua tool mereka dan berharap itu membatasi data yang keluar dari mesin. Tim biasanya memilih Bedrock atau Vertex karena alasan billing, pengadaan, atau penanganan data. Tidak satu pun dari kedua kelompok itu pernah setuju menukar fitur demi pilihan tersebut.
Logika kill-switch-nya sendiri masuk akal. Loader baru yang mengubah isi konteks di setiap sesi justru jenis hal yang ingin bisa Anda matikan dari jarak jauh. Kesalahannya ada pada perilaku default ketika flag tidak bisa diambil. Ada dua pilihan yang bisa dipertanggungjawabkan: kembali ke perilaku yang terdokumentasi, atau menampilkan peringatan. Diam-diam tidak melakukan apa-apa bukan salah satunya. README loader di repo claude-code mendaftar event telemetri yang dikirimnya (agents_md_mode, agents_md_load, agents_md_nested) dan menggambarkannya sebagai "Counts and closed choices only; no path and no file text": hanya hitungan dan pilihan tertutup, tanpa path dan tanpa isi file. Menjaga fitur tetap berjalan bagi pengguna yang mematikan telemetri tidak menuntut pengumpulan data tambahan apa pun dari mereka.
Pola ini bisa menyebar. mpoteat mengatakan dukungan AGENTS.md dibangun di atas "Mods", sistem ekstensi yang akan datang dan berbasis "function hooks". Issue #91870, yang dibuka pada 3 September, menggambarkan mod sebagai "just a plugin that uses function hooks", dengan akses awal lewat CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1. Issue itu menyebut respons komunitas "likely dictates whether this ships or not", yakni kemungkinan besar menentukan apakah sistem ini jadi dirilis. Kalau makin banyak fitur datang sebagai mod yang mati secara default dan menunggu flag jarak jauh, kegagalan ini akan terulang, kecuali perilaku default untuk flag yang tak terjangkau diubah. Sampaikan hal itu di issue tracker selagi desainnya masih terbuka.
"Sudah diperbaiki di 2.1.281" masih sebatas janji
mpoteat bilang perbaikannya adalah bagian dari "v2.1.281 releasing today". Inilah yang ditunjukkan catatan publik saat tulisan ini dibuat:
- Registry npm mencantumkan 2.1.281, dirilis 23 September pukul 17.01 UTC, tetapi hanya di bawah dist-tag
next.latestmasih menunjuk ke 2.1.280 (dirilis 22 September), danstableke 2.1.267. Itu menjelaskan kenapaclaude updatemilik seorang komentator HN melaporkan 2.1.280 sebagai versi terbaru. - Entri terbaru di changelog adalah 2.1.280. Belum ada entri untuk 2.1.281.
- Issue #95690 masih terbuka.
- Dokumentasi memory masih menjelaskan gating tersebut.
Semua ini tidak berarti perbaikannya bohong. Artinya, untuk saat ini, satu-satunya bukti adalah komentar satu engineer. Cakupannya juga belum jelas. Entri 2.1.277 menyebut AGENTS.md "not yet on Bedrock, Vertex or Foundry", dan belum ada informasi resmi yang menyatakan apakah 2.1.281 mengubah hal itu. Anggap perbaikan ini belum terkonfirmasi sampai tes kanari Anda sendiri membuktikan sebaliknya.
Audit lima menit
1. Lihat variabel apa yang terpasang. Periksa shell, runner CI, dan dev container Anda, bukan cuma laptop:
env | grep -E 'DISABLE_TELEMETRY|DO_NOT_TRACK|DISABLE_GROWTHBOOK|CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC'
Kalau salah satu variabel ini ada, anggap pengambilan flag mati. Szypowicz menemukan bahwa mengatur dua variabel yang ia uji ke 0 tidak membantu. Pengambilan flag juga mati kalau Anda memakai Bedrock, Agent Platform milik Google Cloud, atau Microsoft Foundry, atau lewat Claude apps gateway. Jangan korbankan pengaturan privasi hanya demi AGENTS.md. Langkah 4 bekerja tanpa menyentuhnya.
2. Jalankan tes kanari di lingkungan Anda yang sebenarnya. Pakai direktori kosong tanpa CLAUDE.md dan perintah dari bagian sebelumnya. Jalankan dua kali. Dokumentasi menyebut AGENTS.md dilewati pada sesi pertama setelah instalasi atau upgrade, jadi satu kali gagal tepat setelah update belum membuktikan apa-apa.
3. Periksa konteksnya. Di sesi interaktif, /context menampilkan apa saja yang dimuat, termasuk file memory. Kalau AGENTS.md tidak tercantum, agen tidak membacanya.
4. Tambahkan impornya. Inilah perbaikan yang tidak bergantung pada flag, versi, maupun penyedia. Kalau proyek belum punya CLAUDE.md, buat satu yang hanya berisi baris impor:
echo '@AGENTS.md' > CLAUDE.md
Kalau CLAUDE.md sudah ada, tambahkan baris itu di akhir file, jangan menimpanya:
echo '@AGENTS.md' >> CLAUDE.md
Kasus kedua lebih penting daripada kelihatannya. Dengan pengaturan default, Claude Code hanya membaca AGENTS.md di proyek yang tidak punya CLAUDE.md. Kalau repo Anda sudah punya CLAUDE.md, AGENTS.md memang tidak pernah dibaca, ada flag ataupun tidak. Commit file-nya supaya semua orang di tim mendapat perilaku yang sama.
Pengaturan Project instructions (instructionFiles) punya empat nilai: claude-md-or-agents-md (default), claude-md-and-agents-md, claude-md, dan managed-only. Claude Code mengabaikan pengaturan ini di file settings tingkat project dan local, jadi Anda tidak bisa menguncinya per repo. Impor tetap menjadi opsi yang tidak bergantung pada loader yang dikunci flag.
5. Periksa sisa daftarnya. Telusuri daftar fitur yang bergantung pada flag di dokumentasi environment variable, lalu putuskan kehilangan mana yang berarti bagi Anda. Kalau Anda menjalankan banyak server MCP, penyaringan skema adalah yang paling perlu dipikirkan.
6. Verifikasi setiap upgrade, jangan langsung percaya.
npm view @anthropic-ai/claude-code dist-tags
claude --version
Perbaikan ini baru nyata untuk setup Anda begitu rilis 2.1.281 atau yang lebih baru sudah ada di latest, punya entri changelog, dan lolos tes kanari dengan pengaturan privasi Anda yang biasa. Bahkan setelah itu, pertahankan impornya. Cuma satu baris, dan tetap bekerja apa pun yang dilakukan flag berikutnya.
Kalau Anda sendiri memakai feature flag di tool yang Anda rilis, ambil juga pelajaran yang lebih luas. Untuk setiap fitur yang dikunci flag, putuskan secara eksplisit apa yang terjadi saat layanan flag tidak bisa dijangkau. Lalu jadikan jalur itu perilaku yang terdokumentasi, atau pesan yang bisa dilihat pengguna.




Komentar (0)
Belum ada komentar. Mulai percakapannya.