Fallow: Alat Intelijen Kode yang Wajib Dimiliki Setiap Pengguna Claude

BBetter Stack
Computing/SoftwareSmall Business/StartupsInternet Technology

Transcript

00:00:00Ini adalah Fallo, alat kecerdasan berbasis kode untuk TypeScript dan JavaScript yang menganalisis seluruh basis kode Anda untuk mencari kode mati,
00:00:10duplikasi, kompleksitas yang tidak perlu, dan banyak lagi. Artinya, tidak perlu lagi menggunakan kombinasi NIP, JSC, PD, dan ESLint
00:00:17hanya untuk menghentikan agen Anda mengirimkan kode yang buruk. Alat ini dibangun dengan Rust dan mendukung lebih dari 90 plugin,
00:00:23artinya ini akan langsung berfungsi dengan sebagian besar kerangka kerja dan paket populer. Namun fakta bahwa ini hanya mendukung
00:00:29JavaScript dan TypeScript membuatnya kurang menarik bagi pengode yang dibantu AI. Tekan langganan dan mari kita cari tahu.
00:00:30Jadi, inilah proyek yang sedang saya kerjakan yang menambahkan tampilan film sinematik pada video dan gambar.
00:00:39Proyek ini sebagian besar dibangun dengan Claude Code, jadi akan ada tingkat "AI slot" tertentu.
00:00:43Ada juga PR di sini untuk fitur baru dalam proyek tersebut, yang akan saya bahas nanti, selama GitHub tidak menghilangkannya secara tidak sengaja.
00:00:51Untuk memulai, saya akan menjalankan Fallo dengan bendera summary menggunakan BunX, yang berarti saya tidak perlu menginstalnya.
00:00:56Dan ini memberikan cuplikan proyek saya, menunjukkan ringkasan kode mati, duplikasi, dan ringkasan kesehatan kompleksitas.
00:01:02Jika kita memeriksa status git, ini menambahkan direktori .fallo baru yang berisi cache.
00:01:07Artinya, eksekusi perintah ini selanjutnya akan lebih cepat dan berisi cuplikan serta informasi plugin apa pun.
00:01:12Sekarang, Anda mungkin melihat di sini bahwa skor kesehatannya adalah 41 di atas ambang batas. Apa artinya itu?
00:01:16Nah, skor kesehatan Fallo dihitung dengan mengukur kompleksitas siklomatik dan kompleksitas kognitif.
00:01:17Alat ini menggunakan beberapa formula untuk menghitung densitas kompleksitas.
00:01:24Dan di bagian bawah sini, semua ini digunakan untuk menentukan indeks kemampuan pemeliharaan, yang merupakan skor yang kita lihat di sini.
00:01:27Berdasarkan skor ini, terdeteksi bahwa 41 file saya perlu difaktorkan ulang.
00:01:33Dari sini, kita bisa menjalankan perintah mana pun untuk mendapatkan laporan yang lebih rinci tentang area tertentu.
00:01:38Jadi, jika saya ingin fokus pada kesehatan, kita bisa menjalankan perintah ini.
00:01:43Dan setelah beberapa saat, ini mencantumkan semua file yang memiliki masalah kesehatan yang berbeda.
00:01:46Catatan, jika Anda ingin tahu kepanjangan dari CRAP, ini adalah singkatan dari "change risk anti-patterns",
00:01:49yang bisa Anda pelajari selengkapnya di dokumentasi.
00:01:55Tetapi tingkat kerincian ini sangat mudah diikuti oleh agen AI untuk mengetahui apa yang harus diperbaiki.
00:01:57Bahkan, menurut saya masalah duplikasi jauh lebih mudah diikuti karena memberikan file yang tepat dan nomor baris yang spesifik.
00:02:00Jadi, kita akan fokus pada itu untuk saat ini.
00:02:06Dan jika mau, kita bisa menambahkan file konfigurasi fallo untuk memberikan informasi tentang pola atau dependensi tertentu yang ingin diabaikan,
00:02:07serta menetapkan pengaturan duplikasi khusus, pengaturan kesehatan, dan menambahkan batasan,
00:02:14yang merupakan cara keren untuk mendeklarasikan direktori mana yang boleh mengimpor dari direktori lain.
00:02:18Tapi semua ini terlalu rumit untuk kebutuhan saya, jadi untuk sekarang kita gunakan pengaturan default saja.
00:02:23Sekarang dari sini, kita bisa menjalankan perintah fallo fix atau menambahkan bendera dry run untuk melihat apa yang akan dilakukannya,
00:02:27yaitu mencoba menangani semua jenis masalah yang bisa diperbaiki.
00:02:32Dan Anda bisa melihat di sini bahwa alat ini akan menghapus sejumlah ekspor.
00:02:35Tapi sejujurnya saya tidak percaya pada fallo untuk menjalankan perbaikan otomatis karena ia tidak punya banyak konteks tentang kode saya,
00:02:38apa fungsi masing-masing bagian, dan bagaimana semuanya bekerja bersama.
00:02:43Jadi alih-alih menggunakan bendera fix, saya akan menghubungkan fallo dengan agen AI saya,
00:02:46yang bisa dilakukan menggunakan server MCP atau dengan menggunakan plugin VS Code, yang saya rasa akan berfungsi dengan Cursor.
00:02:49Namun saya akan membuatnya sederhana dan hanya menginstal skill fallo, yang berisi beberapa batasan, aturan agen, dan jebakan umum.
00:02:55Setelah skill terinstal, saya akan menjalankan Claude Code dan memberikan perintah untuk mempelajari proyek ini guna memahami cara kerja kodenya,
00:03:03lalu jalankan fallo untuk menangani kode yang terduplikasi, sambil memastikan penghapusannya tidak merusak fungsionalitas inti.
00:03:10Dan setelah selesai, masukkan perubahan ke dalam branch fitur dan jalankan pengujian untuk memastikan aplikasi berjalan sesuai harapan.
00:03:16Bisa kita lihat di sini, alat ini memuat skill fallo.
00:03:22Kemudian ia menjalankan perintah fallo dupes dan mendapatkan format ekspor JSON, yang merupakan format ramah mesin.
00:03:24Setelah sekitar empat menit, Claude selesai memperbaiki tiga file, alih-alih semua file yang disarankan fallo,
00:03:29terutama karena yang lainnya adalah file pengujian, yang terkadang memang seharusnya memiliki kode duplikat.
00:03:34Saya juga memintanya untuk membuat PR dan jika kita lihat, ia menambahkan 54 baris kode dan menghapus 43 baris.
00:03:39Namun ini karena saya memintanya menambahkan file konfigurasi fallo, yang sekitar 20 baris, untuk mengabaikan semua file tes di laporan mendatang.
00:03:46Dan tentu saja, kita harus terus melakukan ini menggunakan Claude Code atau agen lain untuk memperbaiki masalah kompleksitas atau kode mati.
00:03:54Tapi fallo juga bisa meninjau PR.
00:04:00Jadi jika kita lihat PR yang saya tunjukkan tadi, menjalankan perintah fallo audit akan memeriksa masalah apa pun pada branch ini dibandingkan main
00:04:02sehingga kita hanya memperbaiki masalah yang spesifik. Dan jika kita ingin membandingkannya dengan branch yang berbeda, kita bisa menggunakan bendera base.
00:04:12Namun jika kita tidak ingin memberi perintah pada Claude berulang kali untuk menggunakan fallo, kita bisa menjalankan perintah setup hooks,
00:04:16yang akan menghasilkan beberapa hook Claude Code untuk fallo. Fallo juga bisa berjalan sebagai GitHub action dengan anotasi PR.
00:04:24Alat ini mendukung ruang kerja.
00:04:28Ia dapat mengekspor badge kesehatan dan mendukung baseline, yang berarti masalah saat ini dapat diperbaiki seiring berjalannya waktu.
00:04:30Dan CI hanya akan mendeteksi masalah baru, yang sangat bagus untuk memperbaiki proyek besar dengan banyak masalah.
00:04:35Alat ini memiliki banyak fitur, tetapi hampir semuanya adalah analisis kode statis, yang berarti ia tidak benar-benar mengeksekusi fungsi Anda.
00:04:41Jika Anda menginginkan sesuatu yang melakukan itu, fallo mendukung fitur yang disebut kecerdasan runtime
00:04:49untuk memberi tahu fungsi mana yang dipicu saat aplikasi Anda di produksi menerima trafik nyata.
00:04:59Ini dilakukan dengan menggunakan cakupan runtime V8, dan menggabungkan hasilnya ke laporan kesehatan yang ada melalui sidecar
00:05:08yang bisa dijalankan secara lokal atau diterapkan di mana pun Anda mau. Tapi ini, tentu saja, adalah fitur berbayar, yang cukup masuk akal.
00:05:11Secara keseluruhan, fallo adalah alat luar biasa yang akan lebih sering saya gunakan, meskipun fiturnya sangat banyak dan hanya mendukung teknologi JavaScript.
00:05:19Walaupun bahasa lain punya alatnya sendiri, saya tidak yakin ada yang menggabungkan semuanya sebaik fallo, dan menurut saya penciptanya, Bart, melakukan pekerjaan baik,
00:05:36di mana alat ini menggunakan OXC untuk pemindaian analisis semantik dan resolusi modul sebelum analisis berbasis graf dimulai.
00:05:46Jadi intinya, ini tidak akan meninggalkan JavaScript, dan saya yakin ini membuat Evan You sangat senang, bukan karena bagian JavaScript-nya,

Key Takeaway

Fallo mengintegrasikan analisis kode mati, duplikasi, dan kompleksitas berbasis Rust ke dalam satu alat intelijen yang memungkinkan agen AI melakukan refaktorisasi otomatis pada basis kode TypeScript dan JavaScript.

Highlights

  • Fallo menggunakan bahasa pemrograman Rust dan mendukung lebih dari 90 plugin untuk kerangka kerja JavaScript serta TypeScript.

  • Skor kesehatan Fallo dihitung melalui formula kompleksitas siklomatik, kompleksitas kognitif, dan densitas kompleksitas untuk menentukan indeks kemampuan pemeliharaan.

  • Perintah fallo dupes menghasilkan format ekspor JSON yang memungkinkan agen AI seperti Claude Code memproses perbaikan kode secara otomatis.

  • Fitur kecerdasan runtime menggunakan cakupan V8 untuk memantau fungsi mana yang aktif saat aplikasi menerima trafik nyata di lingkungan produksi.

  • Analisis statis Fallo menggunakan OXC untuk pemindaian semantik dan resolusi modul sebelum memulai analisis berbasis graf.

  • Fitur baseline memungkinkan CI hanya mendeteksi masalah kode baru sehingga masalah lama pada proyek besar dapat diperbaiki secara bertahap.

Timeline

Fungsi Dasar dan Arsitektur Fallo

  • Fallo menganalisis seluruh basis kode untuk menemukan kode mati, duplikasi, dan kompleksitas yang tidak perlu.
  • Alat ini menggantikan kombinasi berbagai alat seperti NIP, JSC, PD, dan ESLint dalam satu alur kerja.
  • Dukungan terhadap lebih dari 90 plugin memastikan integrasi langsung dengan sebagian besar kerangka kerja populer.

Fallo dibangun dengan Rust untuk kecepatan eksekusi tinggi. Fokus utamanya adalah ekosistem JavaScript dan TypeScript. Penggunaan alat ini mencegah agen AI mengirimkan kode berkualitas rendah dengan memberikan standar analisis yang ketat.

Metrik Kesehatan dan Pemetaan Kompleksitas Kode

  • Perintah fallo summary menghasilkan cuplikan kesehatan proyek termasuk kode mati dan duplikasi.
  • Direktori .fallo menyimpan cache untuk mempercepat eksekusi perintah berikutnya.
  • Skor kesehatan menentukan jumlah file yang memerlukan refaktorisasi berdasarkan Change Risk Anti-Patterns (CRAP).

Indeks kemampuan pemeliharaan dihitung menggunakan kombinasi kompleksitas siklomatik dan kognitif. Skor ini memberikan indikasi konkret mengenai file mana yang paling berisiko. Laporan mendalam dapat diakses melalui perintah spesifik untuk fokus pada area kesehatan tertentu.

Otomasi Perbaikan dengan Agen AI

  • Fallo menyediakan fitur perbaikan otomatis melalui perintah fallo fix atau mode dry run.
  • Integrasi dengan agen AI dilakukan melalui server MCP, plugin VS Code, atau instalasi skill khusus.
  • Laporan duplikasi memberikan lokasi file dan nomor baris yang spesifik untuk mempermudah identifikasi masalah.

Penggunaan agen AI lebih disarankan daripada perbaikan otomatis bawaan karena agen memiliki konteks fungsionalitas kode yang lebih luas. Skill Fallo menyertakan aturan agen dan batasan untuk memastikan perbaikan tidak merusak fitur inti. Pengembang dapat mengatur file konfigurasi untuk mengabaikan pola atau dependensi tertentu.

Alur Kerja CI/CD dan Peninjauan Kode

  • Perintah fallo audit membandingkan masalah pada branch fitur terhadap branch utama (main).
  • Pemasangan hook otomatis mengintegrasikan Fallo ke dalam alur kerja Claude Code.
  • Dukungan GitHub Action memungkinkan anotasi masalah langsung pada Pull Request.

Fallo mendukung fitur baseline yang sangat berguna untuk migrasi proyek besar. Dengan baseline, sistem hanya akan melaporkan kesalahan baru yang muncul di CI, sementara hutang teknis lama dapat diselesaikan secara terpisah. Alat ini juga mendukung ruang kerja (workspaces) dan pembuatan badge kesehatan untuk dokumentasi.

Kecerdasan Runtime dan Analisis Semantik

  • Kecerdasan runtime melacak pemicuan fungsi pada trafik produksi yang sebenarnya.
  • Hasil pemantauan runtime digabungkan ke dalam laporan kesehatan melalui layanan sidecar.
  • Pemindaian awal menggunakan OXC untuk analisis semantik sebelum memulai analisis berbasis graf.

Meskipun sebagian besar fitur berbasis analisis statis, fitur runtime berbayar memberikan dimensi baru dengan melihat eksekusi kode nyata. Teknologi OXC digunakan di balik layar untuk memastikan resolusi modul dan pemindaian berjalan efisien. Integrasi ini memastikan akurasi tinggi dalam mendeteksi keterkaitan antar modul kode.

Community Posts

View all posts