3 poin oleh xguru 4 jam lalu | Belum ada komentar. | Bagikan ke WhatsApp
  • Membandingkan entitas kode, bukan baris, sehingga menunjukkan fungsi/metode/kelas mana yang ditambahkan/diubah/dihapus/dipindahkan/diubah namanya
    • "line x~y berubah" → "fungsi blah berubah"
  • Berjalan di repo Git mana pun tanpa konfigurasi, dan juga dapat membandingkan file arbitrer di luar Git
  • Cache entitas yang disimpan di SQLite ditempatkan di direktori cache OS di luar repositori, sehingga tidak mengotori working tree
  • Mem-parse kode dengan tree-sitter, lalu menghubungkan kode sebelum dan sesudah perubahan dalam urutan ID entitas → hash struktur AST → kemiripan token di atas 80% untuk mendeteksi rename dan pemindahan
  • Perintah yang didukung

    • sem diff: Membandingkan working tree/staging/commit/rentang commit/dua file arbitrer, dengan dukungan output teks biasa/Markdown/JSON
    • sem impact: Menemukan kode dependen/caller/test yang terdampak saat fungsi tertentu berubah
    • sem blame: Menampilkan pengubah terakhir pada level entitas untuk fungsi/kelas/metode
    • sem log: Melacak bagaimana satu entitas berubah melalui git history
      • Jika entitas tidak ditentukan, menganalisis hotspot (yang sering berubah)/co-change pairs (pasangan yang berulang kali berubah bersamaan) di repositori ("Kalau mengubah yang satu, jangan lupa yang ini juga")
    • sem entities: Menampilkan semua entitas di bawah folder saat ini
    • sem context: Menyusun hanya kode sekitar yang diperlukan agen sesuai token budget
    • sem setup: Saat dijalankan, git diff yang ada akan berubah menjadi output tingkat entitas, dan pre-commit hook yang menunjukkan cakupan dampak perubahan staged juga dipasang
      • Di macOS dan Linux, menghubungkan graf dependensi residen dan context hook saat prompt dimulai ke Claude Code, sehingga mengurangi biaya menganalisis ulang repositori atau mencari-cari kode setiap kali
    • sem mcp: Menyediakan diff, impact, context, entities, blame, log sebagai tool MCP, agar coding agent dapat mengambil hanya fungsi dan dependensi yang diperlukan, bukan seluruh file
  • Jika GitHub Action ditambahkan, setiap PR akan memperbarui fungsi/kelas/metode yang berubah dalam satu komentar tetap, dan juga membedakan PR yang hanya mengubah format/komentar
  • Mendukung 32 bahasa termasuk TypeScript, Python, Go, Rust, Java, Swift, SQL, C/C++, serta JSON/YAML/TOML/CSV/Markdown
    • File yang tidak didukung diproses sebagai diff per chunk
  • Lisensi: MIT OR Apache-2.0

Belum ada komentar.

Belum ada komentar.