Journal Hire Me

Journal

Laravel Tackle: Agen AI yang Hidup di Dalam Aplikasi Laravel-mu

Salah satu rilis yang menarik perhatian saya minggu ini adalah Laravel Tackle, buatan Jordan Dalton — agen coding berbasis AI yang tidak berjalan sebagai tool terpisah di luar aplikasi, melainkan menyatu langsung ke dalam Laravel sebagai kumpulan perintah Artisan.

Bedanya dengan asisten AI kebanyakan: karena Tackle berjalan "di dalam" aplikasi, ia bisa mengakses tool yang sama seperti yang dipakai developer sehari-hari — daftar route, query database, exception dari Telescope, sampai code formatter proyek itu sendiri. Ini mengubah AI dari sekadar "menebak" struktur aplikasi menjadi benar-benar memahaminya lewat konteks yang nyata.

Perintah utamanya cukup lengkap:

  • ai:code — sesi REPL interaktif dengan mode rencana dan slash command
  • ai:run — eksekusi non-interaktif dengan exit code, cocok untuk CI
  • ai:fix — debugging terarah langsung dari exception atau issue GitHub
  • ai:review — analisis pull request dengan komentar inline
  • ai:upgrade — membantu migrasi paket ke versi major berikutnya
  • Self-healing — otomatis menambal queue job yang gagal di git worktree terisolasi

Yang paling saya suka justru bagian keamanannya: guardrail-nya ditegakkan lewat kode PHP, bukan lewat prompt — artinya batasan path, allowlist perintah Artisan, dan limit pengeluaran per sesi tidak bisa dilewati hanya dengan trik prompt injection. Konfigurasi mengatur level akses shell, path file yang dilindungi, dan batas biaya per environment secara eksplisit.

Secara teknis, Tackle butuh PHP 8.3 dan Laravel 12+, memakai Claude secara default lewat laravel/ai (dengan dukungan OpenAI, Gemini, Groq, dan Ollama), menggunakan git worktree untuk isolasi saat mengedit, dan mendukung MCP sehingga bisa dipakai dari Claude Code, Cursor, atau Zed. Instruksi proyek bisa didefinisikan lewat file TACKLE.md (maksimal 20.000 karakter).

Untuk tim yang sudah nyaman memberi AI akses ke basis kode produksi, pendekatan "AI di dalam framework, bukan di luar framework" ini terasa jauh lebih masuk akal dibanding menambal integrasi lewat API terpisah — terutama soal guardrail yang benar-benar ditegakkan lewat kode, bukan sekadar instruksi yang bisa diabaikan model.

← Back to Journal