Pendahuluan

Untuk memastikan kode produksi bebas dari dependensi yang menyertakan model LLM atau mekanisme eksekusi yang tidak terkontrol, tim perlu menetapkan kebijakan tooling yang menyeluruh. Dalam artikel ini akan dibahas langkah praktis mulai dari inventarisasi hingga otomatisasi enforcement yang dapat langsung diimplementasikan oleh tim backend, DevOps, atau security.

1. Inventarisasi Dependensi dan Jejaknya

Dasar kebijakan adalah mengetahui apa saja dependensi yang digunakan. Gunakan manajer paket seperti npm, pip, atau Maven untuk menghasilkan daftar terkini.

  • Generate lockfile: pastikan repository menyertakan package-lock.json, poetry.lock, atau setara untuk audit deterministik.
  • Ekstrak metadata: gunakan skrip sederhana untuk membaca package.json atau pyproject.toml dan mencatat nama serta versi.
  • Catat sumber: tandai apakah paket berasal dari registry publik, private registry, atau path lokal agar bisa ditelaah lebih jauh.

Output inventaris menjadi acuan untuk langkah berikutnya.

2. Analisis Risiko Paket

Analisis risiko bertujuan menemukan paket yang berpotensi membawa kode LLM. Fokusnya bukan pada jumlah dependensi, tapi pada karakteristiknya.

  • Flag paket AI/ML: identifikasi paket dengan kata kunci seperti llm, chat, atau inference dalam deskripsi.
  • Telusuri dependensi turunannya: beberapa paket tidak eksplisit memasukkan LLM, namun dependensi mereka bisa. Gunakan npm ls atau pipdeptree untuk hierarki.
  • Nilai mekanisme eksekusi: paket yang mengunduh model besar atau memanggil API eksternal berpotensi melanggar kebijakan.

Berikan kategori risiko (rendah/menengah/tinggi) dan dokumentasikan alasan penilaian agar konsisten antar reviewer.

3. Integrasi Lint/Scan di Pipeline CI

Setelah risiko dikategorikan, tooling harus mampu mendeteksi perubahan baru. Berikut pendekatan yang bisa dijalankan di pipeline CI:

  • Linting aturan kustom: buat lint rule yang mengecek daftar paket baru terhadap daftar terlarang. Rule bisa ditulis dengan JavaScript atau Python sederhana.
  • Dependency scanner otomatis: jalankan scanner yang membandingkan lockfile saat ini dengan baseline yang disetujui dan memicu kegagalan jika ada paket bertanda risiko tinggi.
  • Contoh sederhana konfigurasi:
steps:
  - name: Checkout
    uses: actions/checkout@v3
  - name: Scan dependencies
    run: |
      python scripts/scan_for_llm.py --baseline ./approved-deps.json
      if [ $? -ne 0 ]; then
        echo "Dependensi tidak sesuai kebijakan LLM"; exit 1
      fi

Skrip scan_for_llm.py membandingkan paket baru dengan baseline berlatar kebijakan LLM. Pastikan pipeline gagal jika ada pelanggaran.

4. Proses Review dan Gated Release

Tooling tidak cukup tanpa proses organisasi yang mendukungnya. Berikut praktik yang bisa diikuti:

  • Pull request gated review: tambahkan pemeriksaan otomatis lint/scan sebagai status check wajib.
  • Tim keamanan dependency: tugaskan reviewer khusus untuk memverifikasi paket apa pun yang tidak otomatis diverifikasi.
  • Release gating: hanya izinkan build dipromosikan ke staging/production jika semua policy check berhasil dan dokumentasinya lengkap.

Catat keputusan manual di changelog khusus agar audit trail tersedia.

5. Otomatisasi Enforcement dan Dokumentasi Kebijakan

Penegakan kebijakan efektif jika lini code dan dokumentasi sinkron.

  • Automated enforcement: update skrip auto-approval agar menolak pembaruan lockfile yang tidak sesuai; kirim notifikasi ke channel tim jika gagal.
  • Dokumentasi: buat dokumen internal yang menjelaskan kriteria paket diterima, prosedur peninjauan, dan cara menjalankan tool lokal.
  • Contoh bagian dokumentasi:

Regla: Semua dependensi baru harus disetujui dengan alasan jelas, termasuk bukti bahwa tidak ada mekanisme LLM atau download model tambahan. Jalankan python scripts/scan_for_llm.py sebelum merge dan lampirkan output pada PR.

Dokumentasi membantu developer memahami alasan kebijakan dan memudahkan onboarding.

Kesimpulan

Kebijakan tooling untuk mendeteksi kode LLM di dependensi menuntut kombinasi inventarisasi, evaluasi risiko, automasi CI, proses review, dan dokumentasi yang konsisten. Dengan pendekatan bertahap—inventarisasi terpercaya, scan otomatis, gated release, dan dokumentasi—tim dapat memastikan lingkungan produksi tetap aman tanpa menghambat iterasi pengembangan.