Log percakapan mentah menjadi tidak terbaca dalam skala besar. Setelah beberapa bulan penggunaan intensif, Anda akan menatap ratusan ribu baris tanya-jawab. Mencarinya terasa lambat; membacanya mustahil. Sebaliknya, Obsidian vault memberi Anda memori jangka panjang yang terstruktur: tautan dua arah, tag, dan tampilan graf yang memunculkan koneksi. Celah di antara keduanya sangat jelas. Menutup celah tersebut membutuhkan otomatisasi.

Saya membangun sebuah pipeline kecil yang menjembatani celah tersebut setiap malam. Ia menjalankan tiga langkah secara berurutan, tanpa intervensi manual. Pertama, ia memanen ekspor percakapan terbaru dan memperbaruinya ke status saat ini. Kedua, ia menyaring dialog mentah 28 jam sebelumnya melalui Claude, lalu menambahkan ringkasan terstruktur langsung ke dalam Obsidian vault. Jendela 28 jam tersebut disengaja; ini mencakup satu hari penuh sebelumnya ditambah sedikit buffer untuk keterlambatan. Ketiga, ia mencadangkan semuanya dengan melakukan commit dan push perubahan ke repositori pribadi, yang berfungsi sebagai penyimpanan offline sekaligus asuransi terhadap penghapusan yang tidak disengaja. Seluruh rantai proses ini harus membosankan dan andal. Otomatisasi yang membosankan adalah tujuannya.

Ketika macOS Mematikan Skrip Anda Secara Diam-diam

Musuh terbesar dari pekerjaan rutin malam hari bukanlah crash yang dramatis. Melainkan keheningan.

Di macOS, folder Documents berada di bawah perlindungan TCC, subsystem privasi yang menjaga akses ke lokasi sensitif. Jika Anda menjadwalkan skrip melalui launchd, sistem mungkin akan memblokir proses tersebut tanpa memunculkan error yang akan Anda sadari. File log Anda tetap kosong. Vault Anda tidak pernah diperbarui. Pekerjaan tersebut gagal, tetapi Anda baru menyadari celah tersebut beberapa hari kemudian saat menyadari catatan Anda sudah tidak mutakhir.

Saya menangani hal ini dengan rutinitas pemeriksaan awal yang ketat. Sebelum pekerjaan utama dimulai, skrip mencoba melakukan operasi penulisan yang tidak berbahaya di dalam direktori target. Jika macOS menolaknya, kegagalan akan segera tertangkap dan notifikasi desktop yang mencolok akan muncul. Tidak ada keluar secara diam-diam. Selanjutnya, interpreter shell itu sendiri perlu diberikan Full Disk Access di dalam System Settings. Izin tersebut bersifat umum, jadi saya meminimalkan paparan dengan menjaga agar semua skrip otomatisasi tetap berada di luar pohon folder Documents yang terlindungi sepenuhnya. Skrip-skrip tersebut berada di direktori khusus di tempat lain, dan jalur vault dirujuk secara eksplisit. Kombinasi dari deteksi dini, peringatan yang mencolok, dan penempatan folder yang hati-hati ini memperbaiki skenario kematian yang diam-diam tersebut.

Merancang untuk Mode Sleep, Timeout, dan Pekerjaan yang Macet

Laptop masuk ke mode sleep. Jaringan mengalami gangguan. Panggilan API menggantung. Satu pekerjaan yang macet tidak boleh menghentikan seluruh sistem tanpa batas waktu.

Saya menggunakan empat mekanisme praktis untuk menjaga stabilitas pipeline.

Slot waktu ganda. Alih-alih bertaruh pada satu kali eksekusi di pagi buta, penjadwal akan mencoba lagi pada waktu yang berbeda sepanjang hari. Jika mesin dalam keadaan tertutup saat fajar, jendela waktu sore hari tetap bisa menangkapnya.

Penanda selesai. Saat sebuah eksekusi berhasil, ia meninggalkan jejak yang jelas. Upaya penjadwalan berikutnya akan memeriksa penanda tersebut terlebih dahulu. Jika pekerjaan sudah selesai, ia akan keluar dengan bersih dalam hitungan detik. Ini mencegah panggilan API yang tidak perlu dan pemrosesan yang redundan.

Penguncian file melalui mkdir. Untuk menghindari eksekusi yang tumpang tindih, saya menggunakan penguncian berbasis direktori. Membuat direktori bersifat atomik pada sistem berkas lokal, sehingga dua pekerjaan yang berjalan bersamaan tidak dapat mengklaim jalur penguncian yang sama. Jika direktori sudah ada, instansi kedua akan langsung membatalkan proses. Saat instansi pertama selesai, ia akan menghapus direktori tersebut. Ini lebih ringan daripada file PID dan lebih sulit