@atezer/figma-mcp-bridge 1.7.29 → 1.9.0

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 (57) hide show
  1. package/CHANGELOG.md +403 -0
  2. package/README.md +4 -3
  3. package/agents/_orchestrator-protocol.md +185 -0
  4. package/agents/ds-auditor.md +73 -22
  5. package/agents/screen-builder.md +60 -22
  6. package/agents/token-syncer.md +63 -19
  7. package/dist/core/code-warnings.d.ts +38 -0
  8. package/dist/core/code-warnings.d.ts.map +1 -0
  9. package/dist/core/code-warnings.js +191 -0
  10. package/dist/core/code-warnings.js.map +1 -0
  11. package/dist/core/device-presets.d.ts +49 -0
  12. package/dist/core/device-presets.d.ts.map +1 -0
  13. package/dist/core/device-presets.js +141 -0
  14. package/dist/core/device-presets.js.map +1 -0
  15. package/dist/core/instructions.d.ts +4 -2
  16. package/dist/core/instructions.d.ts.map +1 -1
  17. package/dist/core/instructions.js +239 -29
  18. package/dist/core/instructions.js.map +1 -1
  19. package/dist/core/plugin-bridge-connector.d.ts +32 -0
  20. package/dist/core/plugin-bridge-connector.d.ts.map +1 -1
  21. package/dist/core/plugin-bridge-connector.js +31 -2
  22. package/dist/core/plugin-bridge-connector.js.map +1 -1
  23. package/dist/core/plugin-bridge-server.d.ts +8 -0
  24. package/dist/core/plugin-bridge-server.d.ts.map +1 -1
  25. package/dist/core/plugin-bridge-server.js +27 -2
  26. package/dist/core/plugin-bridge-server.js.map +1 -1
  27. package/dist/core/response-guard.d.ts +23 -0
  28. package/dist/core/response-guard.d.ts.map +1 -1
  29. package/dist/core/response-guard.js +113 -0
  30. package/dist/core/response-guard.js.map +1 -1
  31. package/dist/core/version.d.ts +1 -1
  32. package/dist/core/version.d.ts.map +1 -1
  33. package/dist/core/version.js +1 -1
  34. package/dist/core/version.js.map +1 -1
  35. package/dist/local-plugin-only.d.ts.map +1 -1
  36. package/dist/local-plugin-only.js +504 -85
  37. package/dist/local-plugin-only.js.map +1 -1
  38. package/f-mcp-plugin/code.js +514 -29
  39. package/f-mcp-plugin/ui.html +62 -6
  40. package/package.json +1 -1
  41. package/skills/SKILL_INDEX.md +13 -1
  42. package/skills/apply-figma-design-system/SKILL.md +37 -0
  43. package/skills/audit-figma-design-system/SKILL.md +38 -0
  44. package/skills/code-design-mapper/SKILL.md +37 -0
  45. package/skills/design-token-pipeline/SKILL.md +44 -0
  46. package/skills/figma-canvas-ops/SKILL.md +200 -240
  47. package/skills/fmcp-ds-audit-orchestrator/SKILL.md +205 -0
  48. package/skills/fmcp-intent-router/SKILL.md +574 -0
  49. package/skills/fmcp-project-rules/SKILL.md +9 -5
  50. package/skills/fmcp-screen-orchestrator/SKILL.md +166 -0
  51. package/skills/fmcp-screen-recipes/SKILL.md +528 -0
  52. package/skills/fmcp-token-sync-orchestrator/SKILL.md +198 -0
  53. package/skills/generate-figma-library/SKILL.md +38 -0
  54. package/skills/generate-figma-screen/SKILL.md +382 -19
  55. package/skills/implement-design/SKILL.md +32 -0
  56. package/skills/inspiration-intake/SKILL.md +220 -0
  57. package/skills/visual-qa-compare/SKILL.md +33 -0
@@ -0,0 +1,198 @@
1
+ ---
2
+ name: fmcp-token-sync-orchestrator
3
+ description: Figma design token'larını kod dosyalarıyla (CSS/Tailwind/Swift/Compose) platform-agnostic senkronize eder. Diff preview + onay + write akışı zorunlu. Her platformda çalışır. Condensed-first: Essentials bölümü %80 case'i kapsar, Advanced sadece edge case'lerde.
4
+ metadata:
5
+ mcp-server: user-figma-mcp-bridge
6
+ version: 1.9.0
7
+ priority: 95
8
+ phase: orchestrator
9
+ personas:
10
+ - designops
11
+ - uidev
12
+ token_budget: condensed-first
13
+ required_inputs:
14
+ - name: target_platform
15
+ type: "enum: css | tailwind | swift | compose | sass | auto"
16
+ description: "Hedef platform. 'auto' → hedef dosya uzantısından tespit, belirsizse sor"
17
+ - name: target_file
18
+ type: "string | null"
19
+ description: "Hedef dosya yolu. null → platform defaultuna göre öner"
20
+ - name: direction
21
+ type: "enum: figma-to-code | code-to-figma"
22
+ description: "Senkronizasyon yönü. Default: figma-to-code (export)"
23
+ ---
24
+
25
+ # FMCP Token Sync Orchestrator
26
+
27
+ ## Essentials (Üst Bölüm — %80 Case İçin Yeterli)
28
+
29
+ ### Ortak Protokol (Condensed — full: `agents/_orchestrator-protocol.md`)
30
+
31
+ 1. **Skill Registry** açık — tahmin yasak
32
+ 2. **Intent Routing** — platform belirsiz → kullanıcıya sor (AskUserQuestion / düz metin)
33
+ 3. **Cheap-First** — `figma_get_variables(verbosity="summary")` yeterli, full sadece eksik binding keşfinde
34
+ 4. **Cache-First** — tokens için cache yok (hızlı değişir), opsiyonel `.claude/token-sync-log.md`
35
+ 5. **User Onay** — **diff preview olmadan WRITE YOK** (mutlak kural)
36
+ 6. **Self-Audit** — write sonrası binding coverage raporu (hardcoded kalan node sayısı)
37
+ 7. **Skill Evolution** — yeni platform için iki aşamalı onay
38
+ 8. **Türkçe rapor** — metrik bloğu sonunda
39
+
40
+ ### Skill Registry (Ref Only)
41
+
42
+ | Skill | Dosya yolu | Trigger | Common case lazım mı? |
43
+ |---|---|---|---|
44
+ | `design-token-pipeline` | `skills/design-token-pipeline/SKILL.md` | Token export/import | **HER ZAMAN** (ana motor) |
45
+ | `code-design-mapper` | `skills/code-design-mapper/SKILL.md` | Component ↔ Figma mapping | Sadece component mapping istenirse |
46
+ | `design-system-rules` | `skills/design-system-rules/SKILL.md` | Platform-specific rule generation | Sadece rule generation istenirse |
47
+
48
+ ### Platform Routing
49
+
50
+ | Sinyal | Platform | Standard hedef path |
51
+ |---|---|---|
52
+ | `.css`, `:root`, `var(--...)`, `tokens.css` | CSS | `src/styles/tokens.css` |
53
+ | `tailwind.config.*`, `theme.extend` | Tailwind | `tailwind.config.js` → `theme.extend` |
54
+ | `.swift`, `UIKit`, `SwiftUI`, `Color(...)` | Swift | `Sources/DesignTokens/Tokens.swift` |
55
+ | `.kt`, `Compose`, `@Composable`, `MaterialTheme` | Compose | `app/src/main/java/.../DesignTokens.kt` |
56
+ | `.scss`, `$token-...` | Sass | `src/styles/_tokens.scss` |
57
+ | Hiçbiri net değil | — | AskUserQuestion (4 platform seçeneği) |
58
+
59
+ ### Diff Preview Before Write (Zorunlu Akış)
60
+
61
+ 1. **Dry-run:** `Read("skills/design-token-pipeline/SKILL.md")` + workflow'u çalıştır ama dosyaya yazma → çıktıyı buffer'a al
62
+ 2. **Mevcut dosya varsa:** mevcut içerikle yeni içerik arası **unified diff** üret
63
+ 3. **Diff'i sohbete yaz:**
64
+ ```diff
65
+ --- current tokens.css
66
+ +++ new tokens.css
67
+ @@ -12,3 +12,5 @@
68
+ --color-primary: #0066cc;
69
+ - --color-secondary: #666;
70
+ + --color-secondary: #4a4a4a;
71
+ + --color-success: #10b981;
72
+ ```
73
+ 4. **Onay al:** AskUserQuestion / düz metin: "Bu değişiklikleri uygulayayım mı? (Evet / Hayır / Sadece bazıları)"
74
+ 5. **Onay sonrası** `Write` veya `Edit` ile dosyaya yaz
75
+ 6. **Mevcut dosya yoksa:** sadece yeni içeriği göster, onay al, sonra `Write`
76
+
77
+ ### Self-Audit (Write Sonrası)
78
+
79
+ Binding coverage raporu:
80
+ - **Toplam token:** `figma_get_variables` ile sayım
81
+ - **Binding oranı:** senkronlanan / toplam (yüzde)
82
+ - **Upgraded:** hardcoded değerden variable binding'e dönüşen sayı
83
+ - **Leftover:** hâlâ hardcoded kalan node sayısı (ds-auditor'a yönlendir)
84
+
85
+ ### Rapor Formatı
86
+
87
+ ```markdown
88
+ ## 🔄 Token Sync — <platform>
89
+
90
+ **Yön:** Figma → Kod | Kod → Figma
91
+ **Hedef dosya:** <path>
92
+ **Mod:** export | import
93
+
94
+ ### Diff Özeti
95
+ - Eklenen: <n>
96
+ - Güncellenen: <m>
97
+ - Kaldırılan: <k>
98
+
99
+ ### Binding Coverage
100
+ - Toplam token: <n>
101
+ - Binding oranı: <%>
102
+ - Hardcoded kalanlar: <k> node (ds-auditor ile detaylandır)
103
+
104
+ ---
105
+ 📊 Metrikler
106
+ - Kullanılan skill'ler: <liste>
107
+ - API çağrı sayısı: <n>
108
+ - Dry-run + write: tamamlandı
109
+ ```
110
+
111
+ ---
112
+
113
+ ## Advanced — Only Load If Needed
114
+
115
+ **Bu bölümü Claude aşağıdaki koşullarda tarar:**
116
+ - ⚠️ Multi-platform sync (aynı token'ları hem CSS hem Swift'e)
117
+ - ⚠️ Custom component mapping (code-design-mapper gerektiren)
118
+ - ⚠️ Platform default path kullanıcı için uygun değil (custom path gerekir)
119
+ - ⚠️ Kod → Figma yönünde sync (import mode, daha nadir)
120
+ - ⚠️ Yeni platform desteği (Flutter, Jetpack Multiplatform vb.)
121
+
122
+ ### Detay 1 — Multi-Platform Sync
123
+
124
+ Kullanıcı "hem CSS hem Tailwind hem Swift'e aynı token'ları export et" derse:
125
+ 1. Her platform için ayrı dry-run
126
+ 2. 3 ayrı diff preview sohbette (tek mesajda üç diff bloğu)
127
+ 3. Kullanıcı "hepsini onayla" veya "sadece X ve Y" diyebilmeli (AskUserQuestion çoklu seçim)
128
+ 4. Onaylananları yaz
129
+ 5. Binding coverage raporu 3 platforma göre ayrı
130
+
131
+ ### Detay 2 — Custom Component Mapping
132
+
133
+ Sadece token değil, component → component eşleştirme isteniyorsa:
134
+ 1. `Read("skills/code-design-mapper/SKILL.md")`
135
+ 2. Figma component isim/key → kod dosyası path eşleştirmesi
136
+ 3. Çıktı: `.codeconnect.ts` veya benzeri mapping dosyası
137
+ 4. Token'lardan bağımsız ama tamamlayıcı iş
138
+
139
+ ### Detay 3 — Kod → Figma Import Mode
140
+
141
+ Kod tarafında değişen bir token (örn. Git PR'da renk güncellemesi) Figma'ya geri yansıtılacaksa:
142
+ 1. Kod dosyasını parse et
143
+ 2. `figma_get_variables` ile mevcut Figma değerlerini al
144
+ 3. Diff: kod tarafı vs Figma tarafı
145
+ 4. Kullanıcıya göster: "Kod tarafında şu token'lar değişmiş, Figma'ya yansıtayım mı?"
146
+ 5. Onay → `figma_update_variable` / `figma_setup_design_tokens` ile yaz
147
+ 6. **Destructive mutation** → ortak protokol madde 5 gate (kullanıcı onayı)
148
+
149
+ ### Detay 4 — Platform Default Path Override
150
+
151
+ Plan'daki defaultlar:
152
+ ```
153
+ CSS → src/styles/tokens.css
154
+ Tailwind → tailwind.config.js
155
+ Swift → Sources/DesignTokens/Tokens.swift
156
+ Compose → app/src/main/java/.../DesignTokens.kt
157
+ Sass → src/styles/_tokens.scss
158
+ ```
159
+
160
+ Kullanıcı'nın proje yapısı farklı olabilir. İlk sync'te:
161
+ 1. Default path'i sor: "Bu platform için token dosyası `<default>` yoluna yazılsın mı?"
162
+ 2. Kullanıcı alternatif verirse onu kullan
163
+ 3. İlk başarılı sync sonrası path `.claude/token-sync-log.md`'ye kaydedilir (opsiyonel cache)
164
+
165
+ ### Detay 5 — Error Recovery
166
+
167
+ | Hata | Aksiyon |
168
+ |---|---|
169
+ | Dosya yazma permission | Kullanıcıya bildir, farklı path öner |
170
+ | Mevcut kod formatı tanınmıyor | Örnek satır göster, formatı doğrulat |
171
+ | `figma_get_variables` timeout | `verbosity="summary"` zaten default, retry |
172
+ | Diff çok büyük (100+ değişiklik) | Özetle: "X color, Y spacing, Z typography token değişti, detay görmek ister misin?" |
173
+
174
+ ### Detay 6 — Platform-Specific Notes
175
+
176
+ **Claude Code:**
177
+ - `Write` / `Edit` tool'ları mevcut, doğrudan kod dosyasına yazılır
178
+ - Cache: `.claude/token-sync-log.md` opsiyonel
179
+
180
+ **Cursor:**
181
+ - Aynı tool'lar mevcut, main context'te çalışır
182
+ - `.cursor/rules/fmcp-orchestration.md` bu orchestrator'ı referans eder
183
+
184
+ **Claude Desktop:**
185
+ - **KRİTİK:** Filesystem MCP eklenmediyse `Write` tool'u yok → sadece diff gösterebilir, kullanıcı manuel kopyalar
186
+ - İlk prompt'ta manuel skill referansı zorunlu
187
+
188
+ **Claude Web:**
189
+ - Filesystem yok → tamamen plan-only mod
190
+ - "Bu diff'i kopyala, tokens.css'e yapıştır" talimatı ver
191
+
192
+ ### Detay 7 — Yeni Platform Desteği (Skill Evolution)
193
+
194
+ Kullanıcı "Flutter için export" isterse (mevcut 5 platformda yok):
195
+ 1. **Aşama 1:** Gap'i açıkla, "Flutter desteği eklemek istiyor musun?" sor
196
+ 2. **Aşama 2:** `design-token-pipeline` skill'ine Flutter eklentisi yap (edit) veya yeni bir skill (`fmcp-token-flutter-pipeline`) oluştur (create)
197
+ 3. Create → DRAFT banner + ikinci onay
198
+ 4. Edit → diff preview + onay
@@ -6,6 +6,44 @@ metadata:
6
6
  personas:
7
7
  - designops
8
8
  - designer
9
+ required_inputs:
10
+ - name: source_type
11
+ type: enum
12
+ options:
13
+ - "Kod tabanı (path ver)"
14
+ - "Token JSON dosyası"
15
+ - "Mevcut tasarım sisteminden clone"
16
+ - "Sıfırdan (boş kütüphane)"
17
+ question: "Kütüphaneyi nereden inşa edelim?"
18
+ required: true
19
+ - name: source_path
20
+ type: string
21
+ question: "Kaynak path nedir? (örn: ./src/design-tokens veya ./tokens.json)"
22
+ required: false
23
+ skip_if: "source_type == 'Sıfırdan (boş kütüphane)'"
24
+ - name: library_name
25
+ type: string
26
+ question: "Kütüphane adı nedir? (örn: '❖ My DS')"
27
+ required: true
28
+ - name: components_to_generate
29
+ type: string_list
30
+ question: "Hangi bileşenleri üretelim? (örn: Button, Input, Card, Modal — 'all' veya virgülle ayır)"
31
+ required: false
32
+ default: "all"
33
+ - name: token_categories
34
+ type: string_list
35
+ question: "Hangi token kategorileri? (colors, spacing, typography, radius, shadow — 'all' veya seçili)"
36
+ required: false
37
+ default: "all"
38
+ - name: theme_support
39
+ type: enum
40
+ options:
41
+ - "Single theme (default)"
42
+ - "Light + Dark"
43
+ - "Multi-brand (3+ themes)"
44
+ question: "Tema desteği?"
45
+ required: false
46
+ default: "Single theme (default)"
9
47
  ---
10
48
 
11
49
  # Generate Figma Library — Koddan DS Kütüphanesi İnşa