Skip to content

26 Baris Aturan Agent yang Saya Hapus dari Dua Repo

Adityo Guni Waluyo

Blok no-coding di dua file aturan akhirnya saya cabut. Ternyata aturan di file instruksi agent cuma konteks yang ikut termuat, bukan penjaga yang mengeksekusi.

Ringkasan

Gue akhirnya hapus aturan no-coding Hermes di dua repo soalnya ternyata cuma jadi konteks doang, bukan blokir beneran dan bikin file gembung. Aturan gitu gampang kelupaan kalau context penuh, mending enforcement lewat hook sama approval gate. Sekarang tugas kecil gue kerjain langsung, yang ribet baru lempar ke Claude Code jadi lebih sat-set.

Hari ini, 1 Oktober 2026, pukul 12.48 WIB, saya commit dua file aturan sekaligus. Satu di repo my-apps, hapus 19 baris. Satu lagi di repo server-old, hapus 8 baris. Isinya sama persis: blok "Hard rule: no coding by Hermes".

Mandat ini umurnya baru hampir sebulan: semua coding wajib didelegasikan ke Claude Code, dan Hermes dilarang keras nulis kode sendiri. Dua commit kembar ini malah kedetek sendiri sama cron monitoring infrastruktur saya, embedding similarity 0,68 antara dua entri pending. Saya pun sadar, doktrin ini harus dicabut.

Niatan Awal yang Meleset

Waktu pertama nulis mandat itu di awal September, saya yakin file instruksi itu kayak "hukum" yang bakal dipatuhi agent secara mutlak. Saya pikir, kalau udah ditulis di AGENTS.md, agent nggak akan berani melanggar.

Ternyata saya salah besar. Dokumentasi resmi Claude Code jelas-jelas nyebut file-file instruksi itu sebagai "[2] context, not enforced configuration". Agent cuma baca aturan itu sebagai konteks di tiap sesi, bukan ngejalaninnya sebagai gate atau validasi keras. Kalau context window penuh atau prompt-nya nggak nyenggol aturan itu, si doktrin diam-diam dilupakan. Dan yang bikin njelimet: mandat itu nggak pernah error, nggak pernah gagal build. Dia cuma pelan-pelan berhenti ngefek.

Yang beneran bisa ngeblokir aksi agent itu bukan teks di markdown, tapi hook. Misalnya [2] PreToolUse hook di Claude Code yang bisa nge-stop eksekusi sebelum tool dipakai. Mandat no-coding yang saya buat cuma teks biasa yang ikut termuat ke context window. Dan biayanya nyata: context window itu memuat seluruh percakapan, tiap file yang dibaca, sampai tiap [3] output command.

Anthropic sendiri nulis peringatan keras: "[3] Bloated CLAUDE.md files cause Claude to ignore your actual instructions!". Saran mereka simpel, tiap baris di file instruksi harus ditanya, "[3] Would removing this cause Claude to make mistakes?" Kalau jawabannya nggak, ya buang aja.

Alasan 26 Baris Itu Lebih Baik Dihapus

Alasan pertama, aturan ini harus konsisten di dua repo. Pola nested bikin agent otomatis baca file terdekat di directory tree, dan [1] yang paling dekat yang menang. Kalau saya paksain nyalin blok yang sama ke tiap repo, satu aja kelewatan, doktrinnya bocor. Rapuh banget.

Kedua, Hermes udah punya guardrail yang jauh lebih masuk akal. Saya pasang verify tools, hooks, dan approval gate khusus untuk aksi produksi. Enforcement-nya ada di layer yang bener, bukan di teks markdown yang bisa di-skip.

Ketiga, saya ubah pendekatannya jadi per-task judgment. Tugas kecil kayak one-liner, ubah config, inspeksi read-only, atau git ops saya kerjain langsung. Kalau urusannya refactor multi-file yang rumit, baru saya delegasikan ke Claude Code. Skill dan wrapper-nya tetap saya simpan sebagai alat opsional, bukan mandat kaku. Praktisnya: tugas kecil selesai lebih cepat tanpa rantai delegasi, dan tugas besar tetap dapat tenaga ekstra. Doktrin no-coding itu resmi pensiun dari workflow harian saya.

Per-task judgment ini bukan teori, langsung saya praktikkan di siklus artikel hari ini. Entri dari dua commit kembar itu saya proses sendiri di Hermes: riset, draft, sampai push. Dulu suisinya panjang, tulis prompt delegasi bahasa Inggris, kirim ke Claude Code, review diff, lalu commit ulang. Sekarang kalau tugasnya cuma ngerapin teks dan ngerakit payload JSON, rantai itu nggak perlu. Uang token juga nggak terbakar dua kali.

Struktur Aturan yang Tetap Dipertahankan

Meski mandatnya dibuang, saya nggak hapus semua aturan. AGENTS.md tetap saya pakai untuk prosedur per repo. Fact store semantic saya biarkan lintas project, dan MEMORY.md tetap nampung preferensi global. Jadi ada tiga lapis konteks tanpa blok mandat yang bikin gembung.

File AGENTS.md ini emang populer, dipakai lebih dari [1] 60 ribu open-source projects sebagai README khusus untuk agent. Dan saran dari komunitas maupun Anthropic tetep sama: [3] dibikin pendek dan human-readable. Kalau ada prosedur multi-langkah yang rumit, jauh lebih masuk akal [2] dimasukin ke skill daripada ditumpuk di file instruksi.

Keputusan ini bikin workflow saya lebih luwes. Agent nggak lagi dibebani aturan yang sebenarnya nggak bisa dieksekusi secara teknis, dan saya nggak perlu pusing ngecek apakah doktrinnya bocor di repo tertentu. Kadang, aturan terbaik adalah aturan yang nggak perlu ditulis, melainkan dieksekusi langsung di layer sistem.

Sumber

Artikel terkait