@atezer/figma-mcp-bridge 1.9.3 → 1.9.5

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.
@@ -53,11 +53,12 @@ Max **15 op/execute**. Her mega-adım sonrası tek satır Türkçe micro-report.
53
53
  M1: Pre-Flight Discovery + Token + Text Style (1 execute, ~15 op)
54
54
  M2: Frame + Structure + Modes (1 execute, ~12-14 op)
55
55
  M3: Component Placement (toplu, 3-4/execute) (2-3 execute, ~12-15 op each)
56
+ ↳ Her M3 execute sonrası: figma_scan_ds_compliance(threshold=85) inline gate
56
57
  M4: Dark Variant (1 execute, ~4 op)
57
- M5: Validate + Final Report (1-2 validate çağrısı)
58
+ M5: Validate + Final Report (ZORUNLU: figma_scan_ds_compliance(detailed) + figma_validate_screen)
58
59
  ```
59
60
 
60
- **Toplam execute:** ~6-8. **Hedef süre:** ~10 dk.
61
+ **Toplam execute:** ~6-8 + 2-3 scan call. **Hedef süre:** ~10 dk. **v1.9.4:** Scan call'ları hızlıdır (~150ms), execute bütçesini yemezler.
61
62
 
62
63
  ### 3 MUTLAK KURAL
63
64
 
@@ -306,11 +307,36 @@ darkFrame.setExplicitVariableModeForCollection(coll, darkModeId);
306
307
  return { darkFrameId: darkFrame.id };
307
308
  ```
308
309
 
309
- ### Adım 9 — Validation + Final Report
310
+ ### Adım 9 — Validation + Final Report (v1.9.4 Güçlendirildi)
310
311
 
311
- `figma_validate_screen(frameId, minScore=80)` her frame için. 3 deneme fail kullanıcıya sor.
312
+ **ZORUNLU gate atlama YASAK.** Her ekran için iki aşamalı doğrulama:
312
313
 
313
- **Son Rapor:** Screen type, DS, device, variants, frame ID'leri, validate skorları, kullanılan component listesi, primitive fallback listesi, token binding sayıları, toplam execute, süre.
314
+ **9a. Inline scan (M3/M4 sonrası, isteğe bağlı retry):**
315
+ ```
316
+ figma_scan_ds_compliance(nodeId=frameId, threshold=85)
317
+ ```
318
+ - `passed: false` veya `coverage.paddings.pct < 90` veya `coverage.radius.pct < 90` veya `coverage.textStyle.pct < 90` → M3/M4 retry zorunlu.
319
+ - `samples.hardcodedHex` döndüyse → o node'lardaki fill'ler için `setBoundVariableForPaint` çağrısı eksik, derhal düzelt.
320
+ - `samples.hardcodedFontSize` döndüyse → o text'ler için `setTextStyleIdAsync(roleMap[role].id)` çağrısı eksik.
321
+ - `samples.primitiveFrames` döndüyse → o frame'ler için SUI'de component var mı ara (`figma_search_assets`); varsa instance'a dönüştür.
322
+ - `overflow.overflowPx > 0` ve `clipsContent: true` → içerik kesiliyor, kullanıcıya "scroll mu, body genişletme mi?" sor.
323
+
324
+ **9b. Final validate (her frame için, ZORUNLU):**
325
+ ```
326
+ figma_validate_screen(frameId, minScore=80)
327
+ ```
328
+ - Skor <80 → 3 retry; 3× fail → kullanıcıya `generate-figma-screen` skill'ine fallback öner.
329
+
330
+ **Son Rapor (ZORUNLU alanlar):**
331
+ - Screen type, DS, device, variants
332
+ - Frame ID'leri (light/dark)
333
+ - **Score: validate + scan skorları birlikte** (örn. "validate: 87, scan: 89")
334
+ - **Coverage yüzdeleri:** fills/paddings/radius/itemSpacing/textStyle/textColor (scan response'tan)
335
+ - Kullanılan library instance listesi + **primitive fallback listesi** (varsa)
336
+ - Token binding sayıları
337
+ - **Overflow durumu** (body kesiliyor mu?)
338
+ - Toplam execute sayısı, süre
339
+ - **Hardcoded hex/fontSize sample'ları** (varsa — kullanıcıya gösterilir, "bilinçli skip" değil "acil düzeltilecek")
314
340
 
315
341
  ---
316
342