@atezer/figma-mcp-bridge 1.7.24 → 1.7.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/.claude-plugin/plugin.json +37 -0
  2. package/.cursor-plugin/plugin.json +21 -0
  3. package/README.md +4 -3
  4. package/agents/ds-auditor.md +29 -0
  5. package/agents/screen-builder.md +29 -0
  6. package/agents/token-syncer.md +26 -0
  7. package/assets/logo.png +0 -0
  8. package/commands/add-library.md +122 -0
  9. package/commands/ds-add.md +255 -0
  10. package/commands/ds-sync.md +314 -0
  11. package/commands/implement.md +43 -0
  12. package/commands/install-library.md +73 -0
  13. package/commands/setup.md +26 -0
  14. package/commands/test.md +39 -0
  15. package/commands/update.md +25 -0
  16. package/dist/core/response-guard.d.ts +1 -1
  17. package/dist/core/response-guard.js +1 -1
  18. package/dist/core/version.d.ts +1 -1
  19. package/dist/core/version.js +1 -1
  20. package/hooks/hooks.json +26 -0
  21. package/package.json +8 -1
  22. package/skills/BRAND_PROFILE_SCHEMA.md +113 -0
  23. package/skills/SKILL_INDEX.md +194 -0
  24. package/skills/TOOL_MAPPING.md +111 -0
  25. package/skills/ai-handoff-export/SKILL.md +254 -0
  26. package/skills/apply-figma-design-system/SKILL.md +104 -0
  27. package/skills/audit-figma-design-system/SKILL.md +278 -0
  28. package/skills/code-design-mapper/SKILL.md +370 -0
  29. package/skills/component-documentation/SKILL.md +190 -0
  30. package/skills/design-drift-detector/SKILL.md +407 -0
  31. package/skills/design-system-rules/SKILL.md +407 -0
  32. package/skills/design-token-pipeline/SKILL.md +619 -0
  33. package/skills/ds-impact-analysis/SKILL.md +266 -0
  34. package/skills/figjam-diagram-builder/SKILL.md +172 -0
  35. package/skills/figma-a11y-audit/SKILL.md +587 -0
  36. package/skills/figma-canvas-ops/SKILL.md +325 -0
  37. package/skills/figma-screen-analyzer/SKILL.md +235 -0
  38. package/skills/fix-figma-design-system-finding/SKILL.md +117 -0
  39. package/skills/fmcp-project-rules/SKILL.md +93 -0
  40. package/skills/generate-figma-library/SKILL.md +598 -0
  41. package/skills/generate-figma-screen/SKILL.md +689 -0
  42. package/skills/implement-design/SKILL.md +473 -0
  43. package/skills/ux-copy-guidance/SKILL.md +373 -0
  44. package/skills/visual-qa-compare/SKILL.md +166 -0
@@ -0,0 +1,407 @@
1
+ ---
2
+ name: design-drift-detector
3
+ description: iOS, Android ve Web platformlarında mevcut kod ile Figma tasarımı arasındaki farkları (drift) tespit eder. Platform bazlı ve cross-platform drift raporları üretir. "check drift", "design drift", "platform drift", "tasarım sapması kontrol et", "parity check", "kod Figma uyuşuyor mu", "spacing doğrula", "token tutarlılık" ifadeleriyle tetiklenir. F-MCP Bridge plugin bağlantısı gerektirir. Bu özellik resmi Figma plugininde yoktur.
4
+ metadata:
5
+ mcp-server: user-figma-mcp-bridge
6
+ personas:
7
+ - uidev
8
+ - designops
9
+ - po
10
+ ---
11
+
12
+ # Design Drift Detector (Multi-Platform)
13
+
14
+ > **Design Token Kuralı:** Bu skill'deki kod örneklerinde geçen font adları, renk kodları, piksel boyutları yalnızca FORMAT gösterimidir. Çalışma anında tüm design token değerleri (font, renk, boyut, spacing, radius, gölge) kayıtlı kütüphaneden (`figma_get_variables`, `figma_get_styles`) veya kullanıcıdan okunmalıdır. Hardcoded token değeri kullanma. Detay: `project-context.md` → "Design Token Kuralı".
15
+
16
+ ## Overview
17
+
18
+ Bu skill, implementasyon sonrasında oluşan kod-tasarım sapmalarını **iOS, Android ve Web** platformlarında ayrı ayrı ve cross-platform olarak tespit eder. Resmi Figma plugininde bu yetenek yoktur.
19
+
20
+ **Drift türleri:**
21
+ - **Token drift** — Figma'da token değeri değişti ama platformdaki dosyada güncellenmedi
22
+ - **Component drift** — Figma component'i değişti (yeni variant, spacing değişikliği vb.) ama koddaki implementasyon güncellenmedi
23
+ - **Platform gap** — Bir platform güncellenmiş ama diğerleri eski kalmış
24
+ - **Cross-platform inconsistency** — Aynı token farklı platformlarda farklı değerde
25
+
26
+ REST API veya Figma access token gerekmez.
27
+
28
+ **Önemli:** Bu skill'in tüm karşılaştırma ve drift tespiti **AI agent tarafından** yapılır. MCP araçları (`figma_get_variables`, `figma_get_styles`, `figma_check_design_parity`) ham veri sağlar; drift analizi, raporlama ve düzeltme önerileri AI'ın çıkarımlarıdır.
29
+
30
+ ## Prerequisites
31
+
32
+ - F-MCP Bridge plugin bağlı olmalı
33
+ - Tercihen `.figma-mappings.json` mevcut olmalı (code-design-mapper skill'i ile oluşturulur)
34
+ - Token dosyaları mevcut olmalı (design-token-pipeline skill'i ile oluşturulur)
35
+
36
+ ## F-MCP skill koordinasyonu
37
+
38
+ **Bu skill’in yeri:** Kod ve Figma **parity** doğrulaması — tipik olarak **implement-design** veya mevcut kod tabanı üzerinde **sonra** çalıştırılır; handoff/implement **öncesi** “mutlaka drift” diye zorunlu değildir (henüz kod yoksa anlamsız olur).
39
+
40
+ **Tipik sıra (kod hattı):** **design-token-pipeline** → isteğe bağlı **code-design-mapper** → **ai-handoff-export** → **implement-design** → **design-drift-detector** (parity). Tuvalde DS tutarsızlığı şüpheliyse önce **audit-figma-design-system** ve gerekirse **fix-figma-design-system-finding** / **apply-figma-design-system**; aksi halde drift raporu **yanlış pozitif** üretebilir.
41
+
42
+ **Drift sonrası yönlendirme:**
43
+ - Sapma **kodda** → kodu düzelt, ardından bu skill’i **yeniden** çalıştır.
44
+ - Değişiklik etkisini ölçmek istiyorsan → **ds-impact-analysis**
45
+ - PO/PM'e teknik olmayan özet sunmak istiyorsan → **figma-screen-analyzer**
46
+ - Sapma **Figma tuvalinde** (instance/token) → **audit-figma-design-system** / **fix** / **apply**, sonra gerekirse tekrar drift veya implement.
47
+
48
+ **Performans:** Aynı oturumda `figma_get_variables` + `figma_get_design_context` tekrarını azalt; önceki tool çıktısı geçerliyse yeniden çağırma. Zincir notları: **audit-figma-design-system** içindeki “Zincir performansı”.
49
+
50
+ ## Required Workflow
51
+
52
+ ### Step 1: Plugin Bağlantısını Doğrula
53
+
54
+ ```
55
+ figma_get_status()
56
+ ```
57
+
58
+ ### Step 2: Kontrol Kapsamını Belirle
59
+
60
+ 3 kontrol modu var:
61
+
62
+ **A) Hızlı Token Drift** — Sadece token değerlerini karşılaştır (en hızlı)
63
+ **B) Platform Component Drift** — Belirli platformda component'leri kontrol et
64
+ **C) Tam Cross-Platform Tarama** — Tüm platformlarda token + component drift (en kapsamlı)
65
+
66
+ ### Step 3: Veri Kaynaklarını Topla
67
+
68
+ #### Figma tarafı:
69
+
70
+ ```
71
+ figma_get_variables(verbosity="full")
72
+ ```
73
+
74
+ ```
75
+ figma_get_styles(verbosity="full")
76
+ ```
77
+
78
+ Component mapping varsa:
79
+
80
+ `.figma-mappings.json` dosyasını oku → component listesini ve platform implementasyonlarını al
81
+
82
+ Her component için:
83
+
84
+ ```
85
+ figma_get_design_context(
86
+ nodeId="<NODE_ID>",
87
+ depth=2,
88
+ verbosity="full",
89
+ includeLayout=true,
90
+ includeVisual=true,
91
+ includeTypography=true
92
+ )
93
+ ```
94
+
95
+ #### Kod tarafı (her platform için):
96
+
97
+ **iOS:**
98
+ - `Colors.swift` veya Asset Catalog'dan renk değerlerini oku
99
+ - `Typography.swift`'ten font değerlerini oku
100
+ - `Spacing.swift`'ten spacing değerlerini oku
101
+ - Component dosyalarındaki hardcoded değerleri ara
102
+
103
+ **Android:**
104
+ - `res/values/colors.xml` ve `res/values-night/colors.xml`'den renkleri oku
105
+ - `res/values/dimens.xml`'den spacing/radius/font size'ları oku
106
+ - `AppColors.kt`, `AppTypography.kt`, `AppSpacing.kt`'den Compose değerlerini oku
107
+ - Component dosyalarındaki hardcoded değerleri ara
108
+
109
+ **Web:**
110
+ - `tokens.css` veya `_tokens.scss`'den CSS variable/Sass variable değerlerini oku
111
+ - `tailwind.config.js`'den Tailwind token'larını oku
112
+ - `tokens.ts`'den TypeScript constant'ları oku
113
+ - Component dosyalarındaki hardcoded değerleri ara
114
+
115
+ ### Step 4: Token Drift Kontrolü
116
+
117
+ Figma token'larını her platformdaki token dosyasıyla karşılaştır.
118
+
119
+ **KRİTİK — Token Name Eşleşme Sorunu:**
120
+
121
+ `figma_check_design_parity` token isimlerini **tam string eşleşme** ile karşılaştırır. Ancak platformlar arası isimlendirme farklıdır:
122
+
123
+ | Figma Variable Adı | iOS | Android | Web |
124
+ |---------------------|-----|---------|-----|
125
+ | `color/primary/500` | `primary500` | `primary_500` | `--color-primary-500` |
126
+ | `spacing/md` | `md` | `space_md` | `--space-md` |
127
+
128
+ Bu yüzden **`codeTokens` içinde Figma'daki variable adını aynen kullanmalısın** — platform naming convention'ını değil:
129
+
130
+ ```
131
+ figma_check_design_parity(
132
+ codeTokens='{"color/primary/500": "#3b82f6", "spacing/md": "16"}'
133
+ )
134
+ ```
135
+
136
+ `figma_check_design_parity` sadece token DEĞER karşılaştırması yapar. Platform kodundaki isimlendirmeyi kontrol etmez. Bu yüzden ek olarak platform dosyalarından değerleri kendin çıkarıp Figma ile karşılaştır:
137
+
138
+ **Platform-spesifik token çıkarma (AI tarafından yapılır):**
139
+
140
+ | Platform | Token Dosyası | Değer Çıkarma |
141
+ |----------|--------------|---------------|
142
+ | iOS | `Colors.swift` | `Color(hex: "#3B82F6")` → `#3B82F6` |
143
+ | iOS | `Spacing.swift` | `static let md: CGFloat = 16` → `16` |
144
+ | Android | `colors.xml` | `<color name="primary">#FF3B82F6</color>` → `#3B82F6` |
145
+ | Android | `dimens.xml` | `<dimen name="space_md">16dp</dimen>` → `16` |
146
+ | Android | `AppColors.kt` | `Color(0xFF3B82F6)` → `#3B82F6` |
147
+ | Web | `tokens.css` | `--color-primary: #3b82f6` → `#3b82f6` |
148
+ | Web | `tailwind.config.js` | `primary: '#3b82f6'` → `#3b82f6` |
149
+
150
+ ### Step 5: Component Drift Kontrolü
151
+
152
+ **Önemli:** `figma_check_design_parity` component-level karşılaştırma yapmaz. Component drift kontrolünü AI agent olarak kendin yapmalısın:
153
+
154
+ Her mapping'deki component için, her platformda:
155
+
156
+ 1. `figma_get_design_context(nodeId=..., includeLayout=true, includeVisual=true, includeTypography=true)` ile Figma'daki güncel component verisini al
157
+ 2. Platform kodunu oku (ör. `ButtonComponent.swift`, `ButtonComponent.kt`, `Button.tsx`)
158
+ 3. Aşağıdaki özellikleri karşılaştır:
159
+ - Renkler (background, text, border)
160
+ - Spacing (padding, margin, gap)
161
+ - Typography (font, size, weight, line-height)
162
+ - Border radius
163
+ - Boyutlar (width, height)
164
+ - Variant/prop tanımları
165
+
166
+ Bu karşılaştırma tamamen AI tarafından yapılır — otomatik bir MCP aracı yoktur.
167
+
168
+ ### Step 5.5: Motion Token Drift Kontrolü
169
+
170
+ Renk, tipografi ve spacing'e ek olarak **motion token'larını** da kontrol et:
171
+
172
+ | Motion Token | Figma Değer | iOS | Android | Web |
173
+ |-------------|-------------|-----|---------|-----|
174
+ | `duration/fast` | 150 | withAnimation(.easeInOut(duration: 0.15)) | animateFloatAsState(150ms) | transition: 150ms |
175
+ | `duration/normal` | 250 | 0.25 | 250ms | 250ms |
176
+ | `duration/slow` | 400 | 0.4 | 400ms | 400ms |
177
+ | `easing/standard` | ease-in-out | .easeInOut | FastOutSlowInInterpolator | ease-in-out |
178
+ | `easing/decelerate` | ease-out | .easeOut | DecelerateInterpolator | ease-out |
179
+
180
+ **Motion token drift kaynakları:**
181
+ - Figma'da motion token tanımlı ama kodda hardcoded süre/easing
182
+ - Platform bazında farklı easing curve'ler (Figma: ease-in-out, kod: linear)
183
+ - Yeni eklenen motion token'ların koda yansıtılmamış olması
184
+
185
+ > Motion token'ları Figma'da STRING variable olarak veya dokümantasyon sayfasında bulunabilir. `figma_get_variables(verbosity="full")` ile STRING type variable'ları kontrol et.
186
+
187
+ ### Step 6: Cross-Platform Tutarlılık Kontrolü
188
+
189
+ Aynı token'ın 3 platformdaki değerini karşılaştır:
190
+
191
+ ```
192
+ Cross-Platform Token Kontrolü:
193
+ ┌─────────────────┬───────────┬───────────┬───────────┬──────────┐
194
+ │ Token │ Figma │ iOS │ Android │ Web │
195
+ ├─────────────────┼───────────┼───────────┼───────────┼──────────┤
196
+ │ primary │ #2563EB │ #3B82F6 │ #2563EB │ #3b82f6 │
197
+ │ │ │ DRIFT! │ OK │ DRIFT! │
198
+ ├─────────────────┼───────────┼───────────┼───────────┼──────────┤
199
+ │ spacing-md │ 16 │ 16 pt │ 16 dp │ 12 px │
200
+ │ │ │ OK │ OK │ DRIFT! │
201
+ ├─────────────────┼───────────┼───────────┼───────────┼──────────┤
202
+ │ radius-md │ 8 │ 8 pt │ 8 dp │ 8 px │
203
+ │ │ │ OK │ OK │ OK │
204
+ └─────────────────┴───────────┴───────────┴───────────┴──────────┘
205
+ ```
206
+
207
+ ### Step 7: Drift Raporu Oluştur
208
+
209
+ ```markdown
210
+ # Multi-Platform Design Drift Raporu
211
+ **Tarih:** 2026-03-12
212
+ **Figma Dosya:** Design System
213
+
214
+ ## Özet
215
+
216
+ | Platform | Token Drift | Component Drift | Toplam |
217
+ |----------|-------------|-----------------|--------|
218
+ | iOS | 3 divergent | 2 component | 5 |
219
+ | Android | 1 divergent | 1 component | 2 |
220
+ | Web | 5 divergent | 3 component | 8 |
221
+ | **Cross-platform** | **2 inconsistency** | — | **2** |
222
+
223
+ **Kritik Seviye:** 5 (acil düzeltme gerekir)
224
+ **Orta Seviye:** 8 (sprint içinde düzeltilmeli)
225
+ **Düşük Seviye:** 4 (takip edilmeli)
226
+
227
+ ---
228
+
229
+ ## Token Drift — Platform Detayları
230
+
231
+ ### iOS (3 drift)
232
+
233
+ | Token | Figma | iOS Kodu | Dosya | Önem |
234
+ |-------|-------|----------|-------|------|
235
+ | primary | #2563EB | #3B82F6 | Colors.swift:12 | KRİTİK |
236
+ | spacing-lg | 24 | 20 | Spacing.swift:8 | YÜKSEK |
237
+ | text-weight-bold | 700 | 600 | Typography.swift:5 | ORTA |
238
+
239
+ **Önerilen düzeltme:** `Colors.swift`'te `primary` değerini `#2563EB` olarak güncelle.
240
+
241
+ ### Android (1 drift)
242
+
243
+ | Token | Figma | Android Kodu | Dosya | Önem |
244
+ |-------|-------|-------------|-------|------|
245
+ | spacing-lg | 24 | 20 | dimens.xml:8, AppSpacing.kt:6 | YÜKSEK |
246
+
247
+ ### Web (5 drift)
248
+
249
+ | Token | Figma | Web Kodu | Dosya | Önem |
250
+ |-------|-------|---------|-------|------|
251
+ | primary | #2563EB | #3b82f6 | tokens.css:5 | KRİTİK |
252
+ | spacing-md | 16 | 12 | tokens.css:15 | YÜKSEK |
253
+ | spacing-lg | 24 | 20 | tokens.css:16 | YÜKSEK |
254
+ | radius-lg | 12 | 16 | tokens.css:22 | ORTA |
255
+ | text-size-lg | 16 | 18 | tokens.css:28 | ORTA |
256
+
257
+ ---
258
+
259
+ ## Cross-Platform Inconsistency
260
+
261
+ Aynı token'ın platformlar arasında farklı olduğu durumlar (Figma'dan bağımsız):
262
+
263
+ | Token | iOS | Android | Web | Notlar |
264
+ |-------|-----|---------|-----|--------|
265
+ | primary | #3B82F6 | #2563EB | #3b82f6 | iOS ≠ Android (ikisi de eski) |
266
+ | spacing-lg | 20 pt | 20 dp | 20 px | Hepsi eski ama tutarlı |
267
+
268
+ ---
269
+
270
+ ## Component Drift
271
+
272
+ ### Button (42:15)
273
+
274
+ | Platform | Durum | Detay |
275
+ |----------|-------|-------|
276
+ | iOS | DRIFT | padding 12→16, font-weight 400→600 |
277
+ | Android | OK | — |
278
+ | Web | DRIFT | padding 12→16, border-radius 4→8 |
279
+
280
+ ### Card (42:20)
281
+
282
+ | Platform | Durum | Detay |
283
+ |----------|-------|-------|
284
+ | iOS | OK | — |
285
+ | Android | DRIFT | yeni variant "outlined" Figma'da var, kodda yok |
286
+ | Web | OK | — |
287
+
288
+ ---
289
+
290
+ ## Önerilen Aksiyon Planı
291
+
292
+ ### Acil (Bu Sprint)
293
+ 1. `primary` rengini tüm platformlarda `#2563EB` olarak güncelle
294
+ 2. `spacing-md` ve `spacing-lg` değerlerini Web'de düzelt
295
+
296
+ ### Yüksek Öncelik
297
+ 3. Button component'ini iOS ve Web'de güncelle
298
+ 4. Card'a Android'de `outlined` variant'ı ekle
299
+
300
+ ### Orta Öncelik
301
+ 5. Typography font-weight değerlerini iOS'ta düzelt
302
+ 6. Border radius değerlerini Web'de düzelt
303
+
304
+ ### Otomasyon Önerisi
305
+ - Token drift'leri için: `design-token-pipeline` skill'ini çalıştırarak tüm platformların token dosyalarını yeniden üret
306
+ - Component drift'leri için: her drifted component'i `implement-design` skill'iyle yeniden implement et
307
+ ```
308
+
309
+ ### Step 8: Otomatik Düzeltme Seçenekleri
310
+
311
+ Kullanıcıya düzeltme yollarını sun:
312
+
313
+ **A) Token dosyalarını yeniden üret (tüm platformlar)**
314
+ → `design-token-pipeline` skill'ini çalıştır
315
+
316
+ **B) Belirli platformun token'larını güncelle**
317
+ → `design-token-pipeline` skill'ini sadece o platform için çalıştır
318
+
319
+ **C) Drifted component'leri yeniden implement et**
320
+ → `implement-design` skill'ini hedef platform + nodeId ile çalıştır
321
+
322
+ **D) Sadece raporla**
323
+ → Raporu kaydet, takıma paylaş
324
+
325
+ ### Step 9: Mapping Durumlarını Güncelle
326
+
327
+ Drift kontrolü sonrası `.figma-mappings.json`'daki durumları güncelle:
328
+
329
+ - Drift yok → `status: "synced"`
330
+ - Drift var → `status: "outdated"`
331
+ - Düzeltme yapıldı → `status: "synced"`, `lastSync` güncelle
332
+ - Coverage summary'yi güncelle
333
+
334
+ ## Periyodik Kontrol Önerileri
335
+
336
+ - **Sprint sonu:** Tüm platformlarda tam tarama
337
+ - **Design token güncellemesi sonrası:** Token drift kontrolü
338
+ - **Platform release öncesi:** İlgili platformda component drift kontrolü
339
+ - **Büyük Figma güncellemesi sonrası:** Cross-platform tarama
340
+
341
+ ## Examples
342
+
343
+ ### Örnek 1: Hızlı Token Kontrolü — Tüm Platformlar
344
+
345
+ Kullanıcı: "Token'lar güncel mi kontrol et, tüm platformlarda"
346
+
347
+ **Akış:**
348
+
349
+ 1. `figma_get_variables(verbosity="full")` → Figma'daki 48 token
350
+ 2. iOS'tan `Colors.swift` + `Spacing.swift` oku → 45 token
351
+ 3. Android'den `colors.xml` + `dimens.xml` oku → 43 token
352
+ 4. Web'den `tokens.css` oku → 48 token
353
+ 5. Her platform için `figma_check_design_parity(...)` çağır
354
+ 6. Cross-platform karşılaştırma tablosu oluştur
355
+ 7. Rapor: "iOS'ta 3, Android'de 1, Web'de 5 drift tespit edildi"
356
+
357
+ ### Örnek 2: Tek Platform Component Kontrolü
358
+
359
+ Kullanıcı: "Android component'leri Figma ile uyumlu mu?"
360
+
361
+ **Akış:**
362
+
363
+ 1. `.figma-mappings.json`'dan Android mapping'lerini oku → 18 component
364
+ 2. Her component için Figma design context çek
365
+ 3. Android koduyla karşılaştır
366
+ 4. Rapor: "1 component drifted (Card — yeni variant eksik)"
367
+
368
+ ### Örnek 3: Belirli Component — Tüm Platformlar
369
+
370
+ Kullanıcı: "Button tüm platformlarda güncel mi?"
371
+
372
+ **Akış:**
373
+
374
+ 1. `.figma-mappings.json`'dan Button mapping'ini oku → 3 platform implementasyonu
375
+ 2. `figma_get_design_context(nodeId="42:15", ...)` → Figma'daki güncel Button
376
+ 3. iOS `ButtonComponent.swift` oku → karşılaştır
377
+ 4. Android `ButtonComponent.kt` oku → karşılaştır
378
+ 5. Web `Button.tsx` oku → karşılaştır
379
+ 6. Rapor: "iOS ve Web'de padding drift var, Android güncel"
380
+
381
+ ## Common Issues and Solutions
382
+
383
+ ### Sorun: Token dosyası bulunamıyor (platform hiç export etmemiş)
384
+
385
+ **Çözüm:** Önce `design-token-pipeline` skill'ini çalıştırarak token dosyalarını oluştur. Drift kontrolü token dosyası yoksa o platformu "not initialized" olarak raporlar.
386
+
387
+ ### Sorun: Renk formatları farklı (hex case, alpha prefix)
388
+
389
+ **Çözüm:** Karşılaştırma öncesi normalize et: `#3B82F6`, `#3b82f6`, `#FF3B82F6`, `Color(0xFF3B82F6)` hepsi aynı renktir. Alpha prefix'i (FF) kaldır, lowercase'e çevir.
390
+
391
+ ### Sorun: Platform projeleri farklı repo'da
392
+
393
+ **Çözüm:** `.figma-mappings.json`'daki `platforms.*.rootDir` alanından her platformun yolunu al. Dosya okumaları bu path'e göre yapılır.
394
+
395
+ ### Sorun: False positive çok fazla
396
+
397
+ **Çözüm:** Tolerans eşiği uygula:
398
+ - Renk: Delta E < 3 ise "low priority"
399
+ - Spacing: 1px fark ise "low priority"
400
+ - Font size: tam eşleşme bekle (fark yok)
401
+
402
+ ## Evolution Triggers
403
+
404
+ - Bridge'e yeni parity aracı eklenirse (ör. token karşılaştırma aracı) ilgili adımlar basitleştirilmeli
405
+ - Yeni platform desteği (Flutter, .NET MAUI) eklenirse platform drift profilleri genişletilmeli
406
+ - `figma_check_design_parity` parametreleri değişirse Step güncellemesi yapılmalı
407
+ - Cross-platform drift raporunda CI entegrasyonu eklenirse JSON çıktı formatı standardize edilmeli