Tim perangkat lunak telah menghabiskan beberapa dekade untuk membangun determinisme ke dalam toolchain mereka. Lockfile untuk package manager. Base image yang di-pin untuk container. Build yang dapat direproduksi untuk artefak yang dikompilasi. Prinsipnya sudah dipahami dengan baik: input yang sama harus menghasilkan output yang sama, selalu, di mesin mana pun, kapan pun.
Design handoff tidak pernah menerapkan prinsip ini. Secara default, ini adalah proses yang pada dasarnya manusiawi dan karenanya tidak deterministik. Seorang desainer menjelaskan desain kepada pengembang. Pengembang menginterpretasikannya. Interpretasi bervariasi menurut orang, menurut hari, menurut seberapa jelas komentar Zeplin ditulis. Anda tidak dapat memutarnya kembali. Anda tidak dapat mengujinya. Anda tidak dapat men-diff-nya.
Dalam dunia agen koding AI, handoff yang tidak deterministik kini menjadi masalah rekayasa kelas pertama. figmascope mengatasinya dengan context bundle yang portabel dan dibekukan.
Mengapa tooling saat ini tidak deterministik untuk agen
Zeplin dan Avocode memberi Anda angka yang diekstrak dari Figma — dimensi layer, nilai warna, ukuran font. Tetapi mereka menyajikannya sebagai UI yang dapat dijelajahi, bukan artefak yang dapat dibaca mesin. Agen yang diarahkan ke Zeplin harus menavigasi UI untuk menemukan nilai, yang rapuh, dibatasi laju, dan bergantung pada bagaimana anotasi ditulis.
Dev Mode Figma melangkah lebih jauh: ia memberi Anda cuplikan kode yang dihasilkan secara inline dari desain. Tetapi cuplikannya tidak memiliki status — diregenerasi sesuai permintaan, tidak diversi. Tidak ada bundle yang dapat Anda check in. Tidak ada file yang dapat Anda diff. Jika desainer memperbarui desain, tampilan Dev Mode diperbarui secara diam-diam. Anda tidak tahu kapan desain yang mendasarinya berubah relatif terhadap apa yang Anda ekspor terakhir kali.
Screenshot adalah kasus terburuk: data piksel murni, sepenuhnya tidak deterministik untuk diurai, menghasilkan inferensi struktur yang berbeda setiap kali.
Koneksi MCP langsung — alat yang memberi agen akses API real-time ke file Figma — tidak deterministik secara definisi. File berubah sementara agen membacanya. Run agen pada pukul 9 pagi dan run pada pukul 2 siang melihat input yang berbeda. Anda tidak dapat mereproduksi run pukul 9 pagi karena sumbernya telah berubah.
Agen adalah sistem probabilistik. Memberikan input yang tidak deterministik kepada mereka tidak hanya menghasilkan varians — ini membuat sistem tidak dapat diuji. Anda tidak dapat mengetahui apakah output yang buruk disebabkan oleh model, prompt, atau fakta bahwa seseorang memindahkan layer antar run.
Bundle sebagai unit kompilasi
Model mental yang tepat untuk ekspor figmascope adalah artefak kompilasi. Sama seperti kompiler mengambil kode sumber dan menghasilkan biner yang deterministik — sumber yang sama, flag yang sama, biner yang sama — figmascope mengambil status file Figma dan menghasilkan bundle yang deterministik: status file yang sama, bundle yang sama, setiap saat.
Bundle adalah snapshot yang dibekukan. Ia menangkap versi spesifik desain dan menserialisasikan setiap properti yang relevan: tata letak spasial, identitas komponen, pengikatan token, konten string, hierarki. Setelah diekspor, bundle tidak dapat diubah. File Figma dapat berubah; bundle tidak. Jika Anda ingin menggabungkan perubahan tersebut, Anda mengekspor ulang dan mendapatkan bundle baru.
Ini adalah model unit kompilasi. File desain adalah sumber. Bundle adalah artefak. Agen mengonsumsi artefak, bukan sumber.
Empat properti handoff yang deterministik
Dapat di-snapshot. Artefak handoff harus mewakili titik waktu tertentu. Bukan "status terkini file Figma" — ekspor yang diberi nama dan diversi. Bundle figmascope membawa _meta.json dengan cap waktu ekspor dan sidik jari dari apa yang disertakan. Bundle adalah snapshot, bukan tampilan langsung.
Portabel. Artefak harus mandiri. Tidak ada ketergantungan pada layanan eksternal, API langsung, atau sesi yang masuk. Bundle figmascope adalah ZIP file biasa — JSON, Markdown, PNG. Anda dapat menyalinnya, mengirimnya melalui email, melakukan check in ke git, melampirkannya ke PR, menyerahkannya ke pengembang junior atau agen koding tanpa setup.
Dapat diperiksa. Artefak yang deterministik tidak berguna jika Anda tidak dapat memverifikasi isinya. Setiap file dalam bundle dapat dibaca manusia. CONTEXT.md adalah Markdown. tokens.json adalah struktur W3C-ish. Per-screen IR adalah JSON dengan nama bidang yang jelas. Seorang insinyur dapat membuka bundle dan mengaudit dengan tepat apa yang diberitahukan kepada agen. Ini secara kualitatif berbeda dari "saya menempel screenshot dan mendapatkan beberapa kode."
Dapat direproduksi. Diberikan status file Figma yang sama, dua ekspor terpisah harus menghasilkan bundle yang secara fungsional setara. Tidak identik byte (cap waktu berbeda), tetapi identik secara semantik: struktur node yang sama, nilai token yang sama, inventaris komponen yang sama. Jika Anda mengekspor dua kali dari file yang tidak berubah dan bundle berbeda secara semantik, ada yang salah. Properti ini memungkinkan Anda memvalidasi pipeline ekspor dan menangkap regresi dalam ekstraktor itu sendiri.
Bagaimana ini dimainkan dalam praktik
Seorang desainer menyelesaikan layar satu sprint. Mereka mengekspor bundle. Bundle di-commit ke repo bersama tiket — atau dilampirkan ke issue Jira, atau dijatuhkan di drive bersama, tergantung workflow Anda. Pada titik ini, artefak handoff sudah ditetapkan. Agen (atau pengembang) bekerja dari bundle, bukan dari file Figma langsung.
Di tengah implementasi, desainer memperbarui tiga layar. Tidak masalah: bundle kerja pengembang tidak berubah. Layar baru mendapatkan ekspor baru. Sekarang Anda memiliki dua bundle dan Anda dapat men-diff-nya: apa yang berubah antara desain yang mulai dikerjakan pengembang dan desain saat ini. Ini persis jenis visibilitas perubahan yang tidak mungkin dilakukan dengan workflow berbasis screenshot atau berbasis koneksi langsung.
Dalam workflow multi-agen — satu agen membangun pustaka komponen, agen lain membangun tata letak layar, agen ketiga menulis pengujian — setiap agen mendapatkan bundle yang sama sebagai sumber kebenarannya. Mereka semua bekerja dari status desain yang dibekukan yang sama. Output mereka dapat disusun karena input mereka dibagikan dan ditetapkan. Ini adalah prasyarat untuk pembuatan UI multi-agen yang benar-benar andal.
Men-diff bundle
Karena bundle adalah file biasa, ia di-diff seperti kode. Dua ekspor file yang sama di dua versi Figma memberi Anda diff JSON yang memberi tahu Anda dengan tepat apa yang berubah:
- Node mana yang ditambahkan atau dihapus
- Pengikatan token mana yang berubah
- String mana yang diperbarui
- Varian komponen mana yang ditukar
- Properti tata letak mana yang berubah (padding, gap, arah)
Ini adalah visibilitas perubahan desain yang tidak ada dalam tooling handoff saat ini mana pun. Figma memiliki riwayat versinya sendiri, tetapi itu visual dan berorientasi desainer. Diff bundle bersifat terstruktur dan berorientasi pengembang: data perubahan yang dapat dibaca mesin yang dapat mendorong pengujian otomatis, memperbarui changelog, atau memicu workflow CI.
CI/CD untuk design handoff
Setelah handoff deterministik, CI/CD mengikuti secara alami. Anda dapat menulis pengujian yang berjalan terhadap bundle: "layar ini harus menyertakan komponen Button/Primary," "token ini harus terikat dan bukan nilai yang di-hardcode," "string ini harus memiliki kunci stringRef." Ini adalah pemeriksaan analisis statis terhadap data terstruktur. Mereka berjalan dalam milidetik. Mereka berjalan dalam pipeline.
Anda juga dapat memvalidasi output agen codegen terhadap bundle yang diberikan. Apakah agen menggunakan token atau literal yang di-hardcode? Apakah ia menghasilkan jumlah instance yang benar dari komponen yang berulang? Apakah ia menggunakan nilai spacing yang benar? Pertanyaan-pertanyaan ini dapat dijawab ketika sumber kebenaran adalah file terstruktur, bukan PNG.
Perbandingan MCP
Koneksi langsung bergaya MCP ke Figma sedang mendapatkan traksi. Daya tariknya jelas: agen selalu melihat desain terbaru, tidak ada langkah ekspor, tidak ada manajemen bundle manual. Tetapi koneksi langsung menukarkan determinisme dengan kenyamanan — dan untuk agen AI, pertukaran itu buruk.
Koneksi langsung berarti: konteks agen bergantung pada kapan ia berjalan. Run pada pukul 9 pagi dan run pada pukul 2 siang melihat data yang berbeda jika desainer bekerja sepanjang hari. Anda tidak dapat mereproduksi run sebelumnya. Anda tidak dapat menguji terhadap input yang ditetapkan. Anda tidak dapat mengaudit apa yang diberitahukan kepada agen. Jika kode yang dihasilkan salah, Anda tidak dapat membedakan "model membuat inferensi yang buruk" dari "desain berubah di bawah agen."
Model yang tepat adalah: koneksi langsung untuk eksplorasi dan iterasi desain (di mana kebaruan penting), bundle deterministik untuk handoff dan generasi (di mana reproduktibilitas penting). Mereka tidak bersaing — mereka beroperasi pada titik yang berbeda dalam workflow.
Menyerahkan ke pengembang junior
Properti yang sama yang membuat bundle baik untuk agen AI membuatnya baik untuk pengembang manusia yang baru mengenal codebase. Pengembang junior yang diberi bundle memiliki: spesifikasi lengkap di CONTEXT.md, semua nilai token di tokens.json, setiap komponen terdaftar dengan propertinya, setiap string dengan identitasnya. Mereka tidak perlu berada di file Figma. Mereka tidak memerlukan akun Figma. Mereka tidak perlu tahu layar mana yang otoritatif.
Bundle adalah perintah kerja yang lengkap dan mandiri. Sama seperti yang akan diterima agen. Satu-satunya perbedaan adalah manusia membacanya dan agen memprosesnya secara programatik — tetapi artefaknya identik.
Penyatuan itu — artefak yang sama, konsumen manusia atau agen — adalah intinya. Bundle adalah unit handoff. Segalanya selain itu adalah detail implementasi.
Lihat handoff deterministik dalam praktik dengan Claude Code, Cursor, atau Aider. Semua dimulai dari ekspor figmascope yang sama.