Blog
Catatan teknis seputar web development, DevOps, dan integrasi AI.
504 artikel
- 08.55security
Gerbang Redaksi Mekanis Sebelum Publish
Style guide kepotong diam-diam di 9000 karakter. Solusinya bukan niat baik, tapi gerbang mekanis yang menyaring IP dan token di artefak final.
TL;DR: Style guide ternyata kepotong di 9000 karakter, jadi aturan redaksi pencegah bocor IP dan kredensial nggak pernah nyampe ke model. Solusinya: guide di-load utuh plus gerbang mekanis check_redaction di verify yang nge-scan semua IP dan token di artikel final. Pelajarannya, validasi artefaknya bukan niat penulisnya, soalnya false positive cuma makan lima menit, kebocoran yang keindeks itu permanen.
#security#tooling#ci - 00.09ai
Versi Sama, Isi Beda: Rebase Skill Claude Code yang Drift
File skill lokal dan upstream sama-sama tertulis 2.2.1, tapi isinya sudah berbeda jauh. Pelajaran cara me-rebase skill tanpa mewarisi drift.
TL;DR: Dugaan saya salah banget: versi sama di frontmatter ternyata nggak jamin isinya sama, salinan lokal SKILL.md udah ditulis ulang sampai doktrin keamanannya kebalik. Jadi filenya direbase biar identik sama upstream, terus semua aturan lokal dipindah ke references dan script wrapper. Pelajarannya, jangan percaya angka versi, selalu byte-compare, dan taruh tambahan di lapisan atas.
#claude-code#hermes-agent#agent-skills - 23.32devops
Kenapa Selftest R97 Gagal Saat Audit Berjalan
Audit meng-hash ulang setelah render jalan, selftest pun gagal. Artefak turunan harus keluar dari digest kanonik dan urutan verifikasi menentukan arti hash.
TL;DR: Selftest R97 gagal gara-gara audit menghitung digest kanonik setelah render, padahal render ngubah isi direktori yang lagi di-hash, jadi hashnya salah bukan karena kontennya. Solusinya, artefak turunan kayak nav.json dan pages.json dikeluarin dari digest; yang dijaga cuma sumber kebenarannya. Fixture selftest yang flake juga diganti mutasi berbasis path, checksum di-freeze ulang biar jejaknya jelas.
#python#testing#ci - 23.29devops
Validator Raib, CI Tetap Hijau
Sync mirror menghapus skrip validasi dan CI tetap hijau. Tiga kelas kegagalan validator plus dua pagar murah berupa anchor wajib dan checksum beku.
TL;DR: Validator bisa hilang diam-diam tapi pipeline tetap hijau, padahal hijau harusnya berarti sehat. Ada tiga kelas kegagalannya: validator hilang, rusak senyap, atau rapuh gara-gara perilaku shell yang beda-beda. Solusinya murah: wajibkan anchor di terjemahan dan freeze checksum selftest, jadi kalau validator nggak cocok pipeline langsung merah.
#git#bash#python - 22.08tooling
Selektor Otomasi Tiba-tiba Gagal Saat UI Berubah Bahasa
Profil browser ber-locale id-ID merender Tanya Qwen dan Salin, dan selector exact match langsung gagal. Pola regex alternation plus penguncian locale menyelesaikannya.
TL;DR: Skrip otomasi gua error gara-gara profil browser kebetulan pakai locale id-ID, jadi tombolnya dirender "Tanya Qwen" bukan "Ask Qwen", dan selector exact match langsung gagal. Solusinya pakai regex alternation kayak (?:Ask|Tanya) biar dua bahasa kecakup, plus kunci locale browser. Tambah juga tes assert sederhana biar tahu cepat kalau polanya pecah lagi.
#automation#playwright#regex - 21.30devops
Argumen Tertukar, Budget Terbakar: Validasi Harus di Paling Atas
Set -euo pipefail tidak menyelamatkan skrip dari argumen tertukar. Guard whitelist dan exit code khusus di pintu masuk mencegah budget terbakar.
TL;DR: Job pertama lancar tapi argumen skrip ternyata tertukar, dana $0.137 kebuang percuma padahal set -euo pipefail udah aktif. Ternyata -u cuma nangkep variabel yang belum didefinisiin, bukan yang isinya salah. Solusinya: guard validasi di paling atas skrip pakai case, lengkap sama exit code khusus biar gagalnya cepat.
#bash#shellcheck#linux - 20.52devops
Dua Konstanta, Satu Kebohongan Diam: Deteksi Drift Pakai ast Tanpa Import
Konstanta turunan drift di hari sumbernya berubah. ast.parse membandingkannya tanpa mengeksekusi satu baris pun.
TL;DR: Tambah satu nilai di CLOSE_ACTIONS ternyata bikin job lama masih dianggap aktif, soalnya STATE_ACTIONS di kernel nggak kebagi update, dua konstanta itu drift diam-diam. Solusinya skrip check-close-actions-drift.sh yang baca dua file sebagai teks pakai ast Python, tanpa import. Skrip ngitung proyeksi STATE_ACTIONS minus EXTRACT_TIME dan NONSTATE, lalu bandingin sebagai set; beda dikit aja langsung exit 1.
#python#testing#debugging - 20.39devops
Launcher Dua Kali Bayar: Tiga Lapis Penjaga Sebelum Skrip Delegasi Menyala
Skrip delegasi yang diluncurkan dua kali menghabiskan budget dua kali. Guard flock, cek artefak, dan pgrep menolak sebelum mulai.
TL;DR: Ceritanya session Claude Code kelihatan macet padahal lagi mikir, jadi gue jalankan ulang dan dua proses makan budget bareng. Solusinya flock -n via file descriptor, plus cek result JSON lama dan pgrep -f buat deteksi proses kembar. Alasan penolakan dibedain lewat exit code 42, 43, 44 biar gampang debug.
#bash#devops#automation - 13.54testing
Triase Merah 14 dari 19: Saat Fixture Bash yang Cacat Menipu Validator
Dari 19 test yang harusnya hijau, 14 lulus. Sisanya gagal bukan karena validator lemah, tapi karena fixture bash yang menghasilkan JSON invalid — cacat yang perlu ditriase, bukan ditutupi.
TL;DR: Gue nambah 330 baris validator buat banyak aturan tapi hasilnya cuma 14 dari 19 lolos. Awalnya ngira logika validator yang error, ternyata fixture bash-nya yang ngaco ngasih JSON invalid. Jadi skornya gue biarin aja segitu dan catet detail gagalnya di laporan T3a biar transparan.
#testing#bash#fixture