01 · Kenapa pakai hook
Agent menjalankan perintah shell lebih cepat daripada saya membacanya.
Ada tiga kesalahan yang tidak boleh terjadi: secret terbaca masuk ke transkrip, commit ter-push ke main, dan baris atribusi AI muncul di riwayat git klien. Kalimat di prompt hanya meminta model untuk tidak melakukannya. Hook menghentikan perintahnya sebelum sempat jalan.
02 · env-guard
Sebelum agent menjalankan perintah shell, sebuah hook memeriksanya. Perintah yang menyentuh file env langsung ditolak.
Hook ini mengenali .env dan variannya sebagai kata utuh. Jadi cat .env dan source .env.local diblokir, sementara environment dan dotenv tetap lolos. Aturannya sengaja ketat, karena agent tidak punya alasan untuk membuka file env. Kalau sesekali salah blokir, saya cukup menjalankan satu perintah sendiri. Di sampingnya ada aturan yang melarang agent membaca dan mengedit file itu. Satu tool agent butuh versi JavaScript, karena aturan izinnya tidak bisa mengenali batas kata.
(^|[^A-Za-z0-9_.])\.env(\.[A-Za-z0-9_-]+)?([^A-Za-z0-9]|$)03 · Agent commit yang tidak bisa push
commit-warden hanya punya satu tugas: memeriksa apakah sebuah pekerjaan sudah utuh, lalu meng-commit-nya.
Aturannya:
- tidak pernah push, termasuk dengan force
- tanpa atribusi AI dan tanpa mengganti author
- tidak ada commit ke main, master, atau develop
- hanya menambahkan file yang disebut, tidak pernah semuanya sekaligus
- satu perubahan per commit, dengan pesan
type: descriptionmaksimal 72 karakter
Ia menandai console log yang tertinggal, TODO, dan perubahan yang campur aduk. Lalu ia memberi tahu berapa commit yang menunggu di-push, tanpa mem-push-nya.
04 · Atribusi dimatikan dari sumbernya
Aturan yang satu ini lahir dari kesalahan.
Suatu kali, trailer AI lolos ke dalam commit. Saya harus amend lalu force-push untuk menghapusnya. Sekarang fitur itu saya matikan langsung di settings, bukan hanya di aturan.
{
"attribution": "",
"includeCoAuthoredBy": false
}05 · Memori yang hanya boleh mengusulkan
Agent memori saya boleh membaca, tapi tidak boleh menulis.
Ia menyusun draf hal yang layak diingat. Agent utama memeriksanya dulu sebelum menyimpan apa pun. Ia tidak pernah mencatat secret atau transkrip. Kalau tidak ada yang baru, ia bilang begitu dan tidak mengarang catatan. Kalau sumber saling bertentangan, urutan kepercayaannya: kode saat ini, pengecekan ulang, snapshot, lalu riwayat.
06 · Audit yang bikin rendah hati
Guardrail yang tidak pernah dites hanyalah keyakinan.
Saat saya mengaudit setup saya, profil yang paling sering saya pakai ternyata tidak punya hook shell sama sekali. Padahal catatan saya sendiri bilang ada. Tool pencarian dan penulisan juga belum terlindungi, dan satu profil tidak punya guardrail apa pun. Aturannya sudah benar. Yang bergeser adalah pemasangannya.
