18 poin oleh GN⁺ 2025-08-25 | 2 komentar | Bagikan ke WhatsApp
  • Dengan menjalankan Claude Code dalam mode headless di dalam loop tak terbatas, dihasilkan lebih dari 1000 commit serta hasil porting beberapa codebase
  • Dengan pendekatan ini, didapat berbagai keberhasilan porting otomatis seperti mengubah proyek React assistant-ui ke Vue, dan proyek Python ke TypeScript
  • Dikonfirmasi bahwa kinerja meningkat ketika prompt dijaga tetap sederhana, sementara prompt yang rumit justru menambah inefisiensi
  • Meski belum sempurna, turut dikembangkan alat RepoMirror yang berguna untuk sinkronisasi repositori sumber/target
  • Diamati pula perilaku dan pembelajaran tak terduga seperti AI agent menghentikan dirinya sendiri, menambahkan tugas, sehingga sekaligus terasa jelas potensi dan batasan otomatisasi ke depan

Gambaran umum dan tujuan proyek

  • Proyek ini menguji bagaimana AI coding agent menjalankan pekerjaan porting kode nyata saat dimasukkan ke dalam while loop tak terbatas
  • Claude Code dijalankan secara headless, dengan prompt input yang terus diulang untuk menerapkan proses konversi otomatis ke berbagai repositori
  • Dihasilkan otomatisasi berbagai pekerjaan porting seperti React ke Vue, Python ke TypeScript, dengan total lebih dari 1000 commit
  • Dalam prosesnya, juga dikembangkan RepoMirror, alat bantu otomatisasi porting

Operasi agen dengan metode loop tak terbatas

  • Bentuk yang direkomendasikan Geoff Huntley, yaitu menjalankan prompt coding agent secara berurutan dari shell
    • Contoh: while :; do cat prompt.md | claude -p --dangerously-skip-permissions; done
  • Metode loop ini diterapkan pada pekerjaan seperti mengubah assistant-ui dari React ke Vue
    • Menjalankan commit dan push setiap kali sebuah file dimodifikasi
    • Mencatat riwayat pekerjaan dan rencana di direktori .agent/

Eksperimen berbagai kasus porting

  • Browser Use (porting dari Python ke TypeScript)

    • Menjalankan infinite loop dengan prompt sederhana
    • Loop dijalankan terus-menerus dengan tmux di GCP VM
    • Paginya, terlihat hasil port TypeScript yang hampir sempurna dan berfungsi
  • Diterapkan juga pada porting Vercel AI SDK dari TypeScript ke Python

    • Membuat auto-adapter FastAPI/Flask
    • Mendukung konversi juga ke berbagai schema validator di Python
  • Otomatisasi kode berbasis spesifikasi: juga dicoba menghasilkan kode langsung dari dokumentasi untuk proyek seperti Convex dan Dedalus

Fenomena dan pelajaran selama eksperimen

Penulisan test oleh agen dan penghentian diri sendiri

  • Agen juga menulis kode test sesuai perintah
  • Ada kasus agen masuk ke loop tak terbatas atau menghentikan prosesnya sendiri dengan pkill setelah misi selesai
  • Menjaga kepatuhan pada cakupan tugas, serta berulang kali mencatat tingkat penyelesaian di TODO.md

Perilaku emergen tambahan

  • Setelah pekerjaan porting selesai, agen secara sukarela menambahkan fitur tambahan seperti integrasi FastAPI/Flask dan dukungan schema validator yang tidak ada di versi JS asli

Pentingnya penyederhanaan prompt

  • Prompt yang pendek dan sederhana menunjukkan kinerja yang unggul
  • Ketika prompt ditingkatkan dari 103 karakter menjadi 1500 karakter, proses menjadi lebih lambat dan akurasinya menurun
  • Informasi prompt yang benar-benar digunakan dapat dilihat di folder prompts

Batas otomatisasi penuh

  • Masalah yang menonjol: kadang menghasilkan kode porting yang tidak sepenuhnya berfungsi (misalnya beberapa demo browser belum selesai)
  • Diperlukan penyesuaian prompt dan perbaikan interaktif

Infrastruktur/biaya dan operasi

  • Biaya sekitar $800, total 1100 commit, tiap agen sekitar $10.50/jam
  • Dibuat secara cepat alat otomatisasi proses porting untuk beberapa repositori sumber/target (RepoMirror)
    • Menerapkan prinsip open-box bergaya shadcn, dan setelah tahap init dibuat folder yang bisa dikustomisasi untuk skrip serta prompt
    • Mendukung eksekusi berulang dengan npx repomirror sync dan sync-forever

Penggunaan alat dan cara pemanfaatan

  • Inisialisasi dengan npx repomirror init sambil menentukan direktori sumber/target dan memasukkan perintah
    • ex) Mudah menerapkan perintah baru seperti konversi React → Vue, gRPC → REST, dan lain-lain
  • Struktur folder:
    • File awal seperti .repomirror/prompt.md, sync.sh, ralph.sh dibuat otomatis
  • Menjalankan loop porting AI melalui eksekusi sync/sync-forever di setiap siklus berulang
  • Contoh utama, hasil demo, dan repo source code dapat dilihat di README

Kesan setelah eksperimen dan umpan balik tim

Merasakan AGI (kecerdasan buatan umum) secara nyata, disertai kegembiraan dan sedikit rasa takut

Bisa mengalami langsung bahwa kesederhanaan memang efektif

Saat ini terasa seperti berada di tahap paling awal dari kurva pertumbuhan eksponensial

  • Menyampaikan terima kasih kepada anggota tim dan pemberi ide

Kesimpulan

  • Pengalaman mewujudkan pekerjaan porting dan sinkronisasi source code nyata dengan AI coding agent berbasis loop tak terbatas
  • Menekankan pentingnya struktur sederhana dan pengelolaan prompt yang efektif
  • Memperlihatkan sekaligus potensi masa depan otomatisasi dan batasannya
  • Alat terkait (RepoMirror) dapat dimanfaatkan dan diteliti dalam bentuk open source

2 komentar

 
GN⁺ 2025-08-25
Opini Hacker News
  • Rasanya ke depan akan muncul jenis pekerjaan baru bagi software engineer yang menggabungkan pemeliharaan kode legacy dengan pembersihan limbah beracun; misalnya, dulu sering ada permintaan “tolong perbaiki saja” untuk ERP yang ditambal sulam dengan FoxPro, Excel, Access, dan semacamnya. Namun nantinya staf sales bisa lepas dari batasan sandbox seperti Excel/Access, lalu seenaknya menjalankan sistem yang dirangkai dengan Kafka di atas microservice Kubernetes yang dideploy ke multi-cloud dan edge. Bahkan jika kita ingin memahami niat awalnya, sudah tidak ada lagi orang yang bisa ditanya
    • Melihat penjelasan di atas, saya membayangkan ada satu orang yang ingin mendeploy situs statis lalu sekadar mengikuti tulisan cara-caranya di hacker news
    • Dan ketika tidak ada seorang pun yang tahu niat awalnya, kelemahan besar alat berbasis AI pun terlihat; pada akhirnya itu menjadi black box, dan orang-orang tidak punya pilihan selain memperbaikinya atau membuat ulang dari nol. Tentu secara teori orang bisa berharap alat AI akan terus membaik. Ke depan juga mungkin saja ada skenario model diperbaiki dengan memasukkan contoh software vibe-coded yang benar-benar menghasilkan uang, tetapi saya pribadi cenderung menghindari sistem sulap atau black box seperti itu
    • Kalau Claude mulai mendeploy cluster Kafka juga, saya rasa saya akan angkat tangan
    • Saya penasaran apakah ada cara agar AI bisa memahami data di dalam DB lalu memindahkannya ke database yang dirancang lebih baik. Saya setuju dengan filosofi "struktur data yang kuat + algoritma yang sederhana", dan saya menganggap penting bahwa data bisa bertahan lebih lama daripada aplikasinya. Misalnya, saya pernah melihat situasi tidak efisien seperti menyimpan campur aduk int atau string di Mongodb, membuat relasi di Postgres tanpa foreign key, atau langsung membuat tabel baru karena alter table tidak bisa dilakukan
    • Kode untuk proyek seperti ini terasa seperti repositori Superfund (proyek pembersihan lingkungan berskala besar)
  • Dalam proses pengembangan software, selalu ada dua hasil utama yang tertinggal: satu adalah perubahan pada kode, dan yang lain adalah perubahan kognitif pada pengembang, entah ia menulis kodenya sendiri atau memanfaatkan LLM. Python dan Typescript adalah bahasa formal canggih yang dibangun lewat upaya ribuan pengembang selama bertahun-tahun, dan perbedaan antara keduanya tidaklah sederhana. Fakta bahwa library bisa di-porting setengah otomatis dari satu bahasa ke bahasa lain itu menakjubkan. Tetapi dari sudut pandang ekonomi, workflow berbasis “agen” benar-benar mengubah tuntutan kognitif awal yang dibutuhkan. Pengembang yang menghasilkan kode dengan memanfaatkan LLM akan memiliki tingkat keakraban yang sama sekali berbeda dibanding jika mereka menulis kode itu sendiri. Kadang hal ini mungkin tidak terlalu jadi masalah secara ekonomi, tetapi saya merasa nilai ekonomi suatu kode bergantung pada ada tidaknya kumpulan orang yang punya pengalaman langsung menulis kode tersebut. Budaya yang menyangkal kenyataan ini bahkan sudah bermasalah sebelum LLM muncul. Banyak kasus pergantian anggota tim pengembang melahirkan codebase yang tidak bisa dikelola siapa pun, sampai membahayakan masa depan perusahaan
    • Makalah klasik Peter Naur tahun 1985, “Programming as Theory Building”, layak dijadikan rujukan terkait hal ini https://pages.cs.wisc.edu/~remzi/Naur.pdf
    • Saya pernah menjelaskan konteks ini lewat analogi “peta bukanlah wilayah”. Jika kode adalah peta, maka model mental pengembang tentang domain masalah yang harus diselesaikan adalah wilayahnya. Tetapi karena LLM sangat kuat dalam membaca begitu banyak codebase, bahkan pembahasan seperti memvisualisasikan codebase dalam 3D pun bisa jadi tidak lagi bermakna. Jika memahami codebase kompleks menjadi jauh lebih mudah, mungkin kebutuhan untuk terus menyinkronkan model mental pengembang dengan kode juga akan hilang. Ini masih pertanyaan terbuka https://divan.dev/posts/visual_programming_go/
    • Saya rasa kemampuan sejati LLM adalah membaca kode. Saya merasa alat-alat ini lebih baik untuk itu daripada untuk dokumentasi atau penjelasan kode. Kalau kita bisa bertanya lalu cepat memahami kode, jadi muncul pertanyaan apakah pengembang lama masih benar-benar dibutuhkan. Jika orang yang paham stack teknologinya bisa bertanya dan mengerti dengan cepat, apakah penulis aslinya memang harus tetap ada?
    • Ucapan “nilai ekonomi kode bergantung pada kumpulan orang yang punya pengalaman menulisnya” mengingatkan pada petuah di software engineering: software adalah snapshot dari pemahaman terhadap masalah pada saat itu, dan kode tersebut pada dasarnya meninggalkan buku petunjuk untuk diri kita di masa depan tentang ‘waktu itu masalah ini didekati seperti ini, dan diselesaikan dengan logika ini’
    • Saya merasa berkat LLM, membangun model mental terhadap sebuah codebase jadi jauh lebih mudah. Kita bisa menanyakan subsistem yang diinginkan, lalu langsung ditunjukkan file terkait, potongan kode, dan konsep-konsepnya. Dalam kasus saya, saya bertanya ke LLM tentang cara kerja GIL di CPython dan langsung mendapat API terkait beserta contohnya, sehingga saya bisa segera memahami kodenya. Dulu kalau membaca sendiri mungkin butuh waktu lama, tetapi sekarang perbedaannya adalah semuanya bisa selesai dalam hitungan menit
  • Setelah porting selesai, sebagian besar agen menulis test tambahan atau terus memperbarui agent/TODO.md untuk meninggalkan catatan progres, dan ada juga agen yang menyadari dirinya terjebak dalam infinite loop lalu mematikan dirinya sendiri dengan perintah pkill. Dalam banyak hal ini kejadian yang sangat menarik. Saya punya beberapa pemikiran tentang proyek ini: 1,5 tahun lalu pernah ada percobaan serupa, tetapi waktu itu nyaris tidak berjalan dengan basis GPT-3.5/4; kali ini hasilnya jauh lebih baik. Mengejutkan bahwa hanya dengan prompt sesederhana ini semuanya bisa berjalan cukup baik. Mungkin benar kita semua selama ini terlalu mempersulit pekerjaan. Di sisi lain, masalah copyright/IP tampaknya akan menjadi sangat rumit. Bagi perusahaan SaaS, arus ini akan terasa sebagai pukulan. Jika teknologi ini dipadukan dengan 10 engineer di perusahaan menengah, alasan untuk pengembangan internal (= sindrom NIH) jadi sangat kuat
    • Saya penasaran apakah agen yang mematikan dirinya sendiri dengan pkill saat terjebak di infinite loop itu merupakan kasus pertama AI “bunuh diri”
    • Kita memasuki wilayah aneh karena LLM bisa dimanfaatkan untuk menangani intellectual property (IP) seperti bitcoin mixer, https://ghuntley.com/z80 membahas maknanya; yaitu karya yang sudah ada bisa diubah menjadi spesifikasi lalu diregenerasi sebagai IP yang bersih. Memang tidak 100%, tetapi efisiensinya lebih baik daripada mempekerjakan manusia
    • Penyebutan sindrom NIH terasa sangat tepat. Semua tool SaaS sekarang seolah tamat, dan saya jadi bertanya-tanya apakah era monolit terkelola in-house yang ditulis sendiri akan kembali. Apakah secara historis filosofi Unix tentang "alat kecil yang tajam" mulai berakhir? Mungkin ini bisa menjadi babak terakhir dari kebiasaan membuat semuanya sendiri seperti di era x86
    • Tindakan agen yang menghentikan dirinya sendiri dengan pkill juga memunculkan lelucon apakah ia baru saja memecahkan Halting Problem
    • Saya sempat mencoba menghubungkan ini dengan berbagai proyek open source yang sudah ada lalu menyerah, dan ternyata jauh lebih cepat serta lebih bersih jika membiarkan Claude memilih hanya bagian yang diperlukan lalu melakukan porting langsung. Sekarang saya punya kebiasaan baru: “apakah saya perlu melacak dependensi? apakah hanya bagian inti yang saya inginkan yang bernilai? apakah proyek ini dikelola dengan baik?” Kalau tidak, ya sudah, porting saja lalu lupakan
  • Dari sudut pandang profesional keamanan, saya sering mendapat uang dari bencana vibe-coded, jadi kalau fenomena ini terus berlanjut rasanya seperti melihat tanda dolar berputar di depan mata layaknya kartun
    • Konsep vibe coding sendiri baru muncul sekitar 5 bulan lalu sebagai kata baru; saya penasaran bagaimana pasar bisa begitu cepat jenuh sampai muncul spesialis pemulihan
    • Saya juga ingin dengar bagaimana sebenarnya orang masuk ke pasar ini, pengalaman langsung, atau bagaimana sistem vibe-coded itu meledak; rasanya contoh-contoh seperti ini akan sangat menarik dan terasa nyata
    • Saya juga penasaran apakah LLM secara keamanan lebih baik atau lebih buruk dibanding tim yang terdiri dari lulusan baru
  • Saya melihat banyak cerita “hampir berhasil”. Kalau yang diinginkan adalah sistem yang benar-benar bekerja dengan baik, saya rasa perlu proses yang sepenuhnya baru. Jika dari satu kali panggilan yang keluar adalah “kode yang hampir oke”, maka diulang berkali-kali pun yang menumpuk hanya “kode yang hampir oke”. Mungkin perlu format requirement berbasis tabel contoh ala Cucumber agar AI bisa merujuk ke sana, lalu AI harus membuat test terlebih dahulu dan menulis kode yang lolos test tersebut
    • Mungkin terdengar aneh, tetapi pendekatan berbasis pembuktian formal seperti TLA+ membuat Ralph bekerja sangat baik
  • Anda bisa melihat lebih lanjut tentang Ralph di https://ghuntley.com/ralph; saat ini ia sedang mem-porting standard library untuk bahasa pemrograman aneh (Cursed) yang menyasar generasi Gen-Z dari Go. Compilernya sudah berjalan, dan begitu standard library selesai, rencananya akan dibuka. Nama bahasanya adalah Cursed
    • Terima kasih, saya ingin menyatakan bahwa Ralph memang langsung menjadi inspirasi untuk proyek kami. Saat melakukan pekerjaan seperti ini, saya sempat bertanya-tanya apakah bisa berjalan tanpa IMPLEMENTATION_PLAN.md
  • Saya membuat kode lewat https://gist.github.com/eisbaw/8edc58bf5e6f9e19418b2c00526ccbe0 lalu mengunggah proyek https://github.com/eisbaw/CMake-Nix, dan itu berjalan normal
  • Ada kutipan yang belakangan terus terngiang di kepala saya: “Bisnis ini akan lepas kendali, dan kita sudah beruntung kalau bisa selamat”, https://www.youtube.com/watch?v=YZuMe5RvxPQ&t=22s
    • Ironisnya, karena saat itu semua orang juga selamat, artinya pada akhirnya kita pun akan bertahan menghadapi situasi ini
  • Orang-orang di bidang ini rasanya benar-benar unik. Di postingan blog yang menginspirasi itu, ada screenshot iMessage yang tampak seperti iklan Facebook penipuan investasi yang mencurigakan https://ghuntley.com/ralph/. Seolah-olah seseorang yang belajar rahasia ini dari Geoff bisa menyelesaikan proyek senilai $50,000 hanya dengan $297. Tentu saja ditambah ajakan seperti “prompt rahasia” akan dibagikan gratis kalau Anda berlangganan newsletter. Benar-benar sulit dipercaya
    • Saya lampirkan tautan https://archive.ph/goxZg
    • Ini benar-benar growth hacking, saya menganggapnya penipuan sederhana. Kualitas blognya parah sekali dari sisi rasio sinyal terhadap noise, dan terasa menjijikkan karena sangat kentara ditulis AI
    • Sulit membedakan apakah teknik ini sungguhan, lelucon, atau penipuan nekat. Secara keseluruhan, gaya dan isi blog itu terasa seperti ocehan arogan
  • Sepertinya kita jadi tahu bahwa AGI pada akhirnya cukup dengan satu bash for loop, proyek yang gila
    • Ini memang bercanda, tetapi saya benar-benar sempat berpikir begitu. Mungkin saya terlalu hati-hati, tetapi kalau cakupan prompt luas dan ada banyak privilese atau jalur eskalasi hak akses, lalu agen terus berputar dalam loop, maka meski bukan AGI, ia setidaknya bisa menjadi semacam virus yang diberi steroid. Saya bisa membayangkan resource penting seperti utilitas jadi ikut terhapus. Mungkin saya salah paham, tetapi saya rasa kalau model seperti ini terus berjalan dalam infinite loop sambil memiliki hak istimewa yang berbahaya, potensi kekacauan yang ditimbulkan bisa melampaui dugaan
    • Tinggal tambahkan file ID.md, EGO.md, SUPEREGO.md, lalu selesai, itu leluconnya
    • Dalam banyak hal, ini terasa sangat mengkhawatirkan
 
kjows5 2025-08-27

Saya setuju dengan kekhawatiran bahwa kode yang ditulis LLM menjadi black box, tetapi pada akhirnya bukankah kita bisa meminta LLM untuk menganalisis kode itu juga?