Claude Code adalah agen pengkodean yang andal. Beri ia screenshot layar Figma dan ia akan menghasilkan sesuatu yang terlihat agak benar. Beri ia bundel konteks terstruktur — token desain bertipe, IR layout, render referensi, dan spesifikasi yang dapat dibaca mesin — dan ia menghasilkan kode yang benar-benar dapat Anda kirim.

figmascope menghasilkan bundel itu di sisi klien, sepenuhnya di browser Anda. Tidak ada backend, tidak ada unggahan, tidak ada layanan perantara dengan akses ke file Figma Anda. Panduan ini membahas alur kerja Figma → figmascope → Claude Code lengkap dengan contoh CLI nyata. Jika Anda menggunakan Cursor alih-alih Claude Code, lihat Figma ke Cursor untuk alur kerja khusus Cursor.

Prasyarat

Ekspor bundel konteks dari figmascope

Buka figmascope.dev, tempel URL file Figma dan token Anda, klik Export Context Bundle. Anda akan mendapatkan zip seperti figmascope-ABC123.zip.

Unzip ke direktori design/ di proyek Anda:

unzip figmascope-ABC123.zip -d design/

Pohon yang dihasilkan:

design/
├── CONTEXT.md
├── tokens.json
├── _meta.json
├── components/
│   └── inventory.json
├── screens/
│   ├── Home.json
│   ├── Home.png
│   ├── Settings.json
│   └── Settings.png
└── strings.json

Commit ke source control. Manifes _meta.json mencatat stempel waktu ekspor dan kunci file Figma, sehingga tim selalu tahu versi desain mana yang sesuai dengan bundel.

Cara Claude Code membaca bundel konteks

CONTEXT.md adalah titik masuk. Ini adalah dokumen spesifikasi terstruktur yang memberi tahu agen:

Claude Code membaca file sebelum bertindak. Memulai sesi dengan CONTEXT.md mengorientasikan agen sebelum menyentuh JSON layar apa pun.

Memulai sesi Claude Code

Pendekatan paling langsung — luncurkan claude di root proyek Anda dan arahkan ke direktori desain:

claude

Kemudian dalam sesi interaktif:

Baca design/CONTEXT.md, lalu implementasikan layar Home sebagai komponen React.

Gunakan:
- design/tokens.json untuk semua nilai token desain
- design/screens/Home.json untuk pohon layout
- design/screens/Home.png sebagai referensi visual
- design/strings.json untuk semua teks (gunakan kunci dot-notation sebagai pengenal i18n)

Batasan:
- Tailwind CSS untuk gaya, petakan nilai token ke konfigurasi tema
- TypeScript
- Tidak ada nilai warna atau spasi yang di-hardcode — semua nilai harus berasal dari token

Claude Code akan membaca file secara berurutan, menyelesaikan referensi token dari IR, dan menghasilkan komponen yang mencerminkan sistem desain Anda yang sebenarnya bukan perkiraan generik.

Prompt satu kali dengan --print

Untuk pipeline CI atau codegen berbasis skrip, gunakan mode non-interaktif --print:

claude --print "$(cat <<'EOF'
Baca design/CONTEXT.md. Kemudian implementasikan design/screens/Home.json sebagai
src/screens/Home.tsx (React + Tailwind + TypeScript).
- Semua token dari design/tokens.json
- Semua string dari design/strings.json menggunakan kunci dot-notation
- Referensi visual: design/screens/Home.png
- Nama komponen dari design/components/inventory.json
EOF
)"

Heredoc membuat prompt tetap dapat dibaca dalam skrip shell. --print menulis respons Claude ke stdout, sehingga Anda dapat menyalurkan atau menangkapnya sesuai kebutuhan.

Claude Code bekerja paling baik ketika Anda memberinya satu layar dalam satu waktu. IR layout untuk satu layar sudah padat; jaga agar sesi tetap fokus.

Proyek multi-layar — pendekatan yang masuk akal

Untuk file dengan banyak frame, kerjakan secara bertahap. Loop pada file layar:

for screen_json in design/screens/*.json; do
  screen=$(basename "$screen_json" .json)
  echo "Mengimplementasikan $screen..."
  claude --print "$(cat <<EOF
Baca design/CONTEXT.md sekali. Kemudian implementasikan design/screens/${screen}.json
sebagai src/screens/${screen}.tsx. Rujuk design/screens/${screen}.png
untuk akurasi visual. Gunakan token dari design/tokens.json.
Jangan re-implementasikan komponen yang sudah ada di src/components/.
EOF
)"
done

Instruksi "jangan re-implementasikan komponen yang sudah ada" penting ketika inventaris komponen dibagikan. Claude Code dapat membaca design/components/inventory.json untuk mengidentifikasi komponen mana yang sudah diimplementasikan dan mengimpornya daripada membuatnya ulang.

Menyambungkan token desain

tokens.json yang diekspor oleh figmascope menggunakan struktur bersarang mirip W3C dengan field $value dan $type:

{
  "color": {
    "surface":    { "$value": "#f6f2ea", "$type": "color" },
    "ink":        { "$value": "#1f1d1a", "$type": "color" },
    "accent":     { "$value": "#d96a3a", "$type": "color" }
  },
  "spacing": {
    "1": { "$value": "4px",  "$type": "dimension" },
    "2": { "$value": "8px",  "$type": "dimension" },
    "4": { "$value": "16px", "$type": "dimension" },
    "8": { "$value": "32px", "$type": "dimension" }
  },
  "typography": {
    "body": {
      "fontFamily": { "$value": "Inter",  "$type": "fontFamily" },
      "fontSize":   { "$value": "14px",   "$type": "dimension" },
      "lineHeight": { "$value": 1.45,     "$type": "number" }
    }
  }
}

Minta Claude Code untuk menghasilkan blok ekstensi tema tailwind.config.ts dari file ini sebagai langkah pertama, sebelum mengimplementasikan layar apa pun. Dengan begitu semua implementasi layar berikutnya dapat menggunakan alias token Tailwind secara konsisten:

claude --print "Baca design/tokens.json dan hasilkan blok
theme.extend untuk tailwind.config.ts. Petakan token warna ke theme.extend.colors,
token spasi ke theme.extend.spacing, dan tipografi ke
theme.extend.fontFamily / fontSize. Keluarkan hanya objek konfigurasi."

Lihat Ekspor Token Desain untuk Agen AI untuk penyelaman mendalam tentang format token dan fallback inferensi frekuensi yang digunakan figmascope ketika Figma Variables tidak disiapkan.

Menangani lapisan string

Setiap node teks dalam file Figma mendapatkan slot di strings.json. Kunci menggunakan dot-notation yang berasal dari hierarki frame:

{
  "home.hero.title":        "Semua yang Anda butuhkan",
  "home.hero.subtitle":    "Kirim lebih cepat dengan konteks terstruktur",
  "home.cta.primary":      "Mulai",
  "settings.account.heading": "Pengaturan akun"
}

Instruksikan Claude Code untuk menggunakan kunci ini sebagai pengenal i18n. Daripada hardcode string "Semua yang Anda butuhkan" di JSX, komponen yang dihasilkan memanggil t('home.hero.title') (atau padanan di perpustakaan i18n Anda). File sumber daya sudah ada di strings.json — Anda hanya perlu mengimpornya atau menyambungkannya ke pengaturan i18n Anda.

Jika figmascope mendeteksi tabrakan — dua node yang di-hash ke kunci yang sama — ia mengeluarkan peringatan strings-collision di _meta.json dan menambahkan sufiks numerik untuk membedakan. Periksa _meta.json sebelum memulai sesi agar Anda tahu apa yang diharapkan.

Integrasi CLAUDE.md

Jika Anda menggunakan file konteks proyek CLAUDE.md, tambahkan bagian singkat yang mengarahkan agen ke direktori desain. Ini cocok dengan pendekatan yang dijelaskan di Handoff Desain AI dan melengkapi mengapa figmascope berbeda dari plugin Figma inspector.

Tambahkan bagian desain seperti ini:

## Konteks desain

Token desain, IR layout, render referensi, dan string ada di `design/`.
Selalu baca `design/CONTEXT.md` sebelum mengimplementasikan layar apa pun.
Nilai token ada di `design/tokens.json` — jangan pernah hardcode warna atau spasi.
Nama kanonik komponen ada di `design/components/inventory.json`.

Ini berarti setiap sesi Claude Code dalam proyek akan secara otomatis memiliki konteks desain sebagai bagian dari pengetahuan kerjanya, tanpa Anda harus mengulanginya di setiap prompt.

Apa yang sebenarnya benar dilakukan agen

Dengan konteks terstruktur, Claude Code secara andal mendapatkan:

Yang masih memerlukan tinjauan manusia: state interaksi (hover, focus, active) yang tidak terlihat di frame Figma statis, waktu animasi, dan breakpoint responsif yang tidak didesain secara eksplisit dalam file. IR menangkap layout statis; perilaku dinamis di luar cakupan.

Menggunakan --dangerously-skip-permissions di lingkungan terkontrol

Untuk pipeline otomatis di mana Anda ingin Claude Code beroperasi tanpa prompt persetujuan interaktif — misalnya dalam langkah CI yang menghasilkan stub komponen setelah pembaruan desain — Anda dapat menggunakan --dangerously-skip-permissions. Hanya sesuai di lingkungan kotak pasir tanpa kredensial produksi.

claude --dangerously-skip-permissions --print "$(cat <<'EOF'
Baca design/CONTEXT.md. Hasilkan file stub komponen untuk komponen apa pun
di design/components/inventory.json yang belum ada di src/components/.
Gunakan format komponen fungsional TypeScript + React. Sertakan komentar TODO
untuk setiap komponen yang mereferensikan JSON layar yang relevan.
EOF
)"

Dalam alur kerja developer produksi, biarkan izin interaktif. Prompt ada untuk alasan yang baik — Claude Code dapat dan akan menulis file, dan Anda ingin tahu yang mana sebelum dilakukan.

Memeriksa peringatan ekspor sebelum melakukan prompt

figmascope mengeluarkan peringatan ke _meta.json untuk kondisi yang mungkin mempengaruhi kualitas output. Periksa sebelum memulai sesi Claude Code:

python3 -c "
import json
meta = json.load(open('design/_meta.json'))
for w in meta.get('warnings', []):
    print(f\"{w['code']}: {w['message']}\")
print(f\"Frame diekspor: {meta['frameCount']}\")
print(f\"Sumber token: {meta.get('tokensSource', 'variables')}\")
"

Dua peringatan yang perlu diperhatikan:

Alur kerja Android dan iOS

Claude Code tidak terbatas pada framework web. Bundel konteks bersifat agnostik framework — IR layout dan token adalah data, bukan CSS. Untuk Jetpack Compose:

claude --print "$(cat <<'EOF'
Baca design/CONTEXT.md dan design/tokens.json.

Implementasikan design/screens/Home.json sebagai layar Jetpack Compose.
- Petakan token warna ke MaterialTheme ColorScheme
- Petakan token spasi ke nilai Dp (hapus sufiks 'px', gunakan .dp)
- Petakan token tipografi ke MaterialTheme.typography
- Gunakan nama komponen dari design/components/inventory.json sebagai nama Composable
- Rujuk design/screens/Home.png untuk akurasi visual
EOF
)"

Node stack dalam IR secara alami dipetakan ke Column (arah: vertikal) dan Row (arah: horizontal) dalam Compose. Node leaf dengan type: "text" menjadi composable Text; type: "image" menjadi Image atau placeholder. Lihat Jetpack Compose dari Figma untuk pola lengkapnya.

Membuat versi bundel desain

Perlakukan direktori design/ seperti dependensi proyek lainnya. Ketika desain berubah secara signifikan, ekspor ulang dari figmascope.dev, commit, dan catat perubahan di PR:

# Periksa kapan bundel terakhir diekspor vs kapan file Figma terakhir dimodifikasi
python3 -c "
import json
from datetime import datetime
meta = json.load(open('design/_meta.json'))
exported = datetime.fromisoformat(meta['exportedAt'].replace('Z', '+00:00'))
modified = datetime.fromisoformat(meta['figmaLastModified'].replace('Z', '+00:00'))
delta = modified - exported
if delta.total_seconds() > 0:
    print(f'PERINGATAN: File Figma dimodifikasi {delta} setelah ekspor terakhir')
else:
    print('Bundel sudah terkini')
"

Bundel yang kedaluwarsa berarti agen bekerja dari desain yang sudah usang. Pemeriksaan stempel waktu menangkap ini sebelum Anda menghabiskan waktu untuk sesi codegen yang didasarkan pada spesifikasi yang sudah tidak berlaku.