syr-d2c-workflow-mcp 0.2.0 → 0.3.1

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.
package/README.md CHANGED
@@ -156,7 +156,73 @@ Figma 디자인과 렌더링 결과를 비교 분석합니다.
156
156
  - `d2c://rules/default` - 기본 디자인 규칙
157
157
  - `d2c://templates/react` - React 컴포넌트 템플릿
158
158
 
159
- ## 워크플로우
159
+ ## 3단계 Phase 워크플로우
160
+
161
+ v0.3.0부터 객관적인 성공률 측정을 위한 3단계 Phase 시스템을 지원합니다.
162
+
163
+ | Phase | 목표 성공률 | 비교 방법 | 수정 주체 |
164
+ |-------|-----------|----------|----------|
165
+ | **Phase 1** | 60% | Playwright 스크린샷 비교 | Figma MCP (재추출) |
166
+ | **Phase 2** | 70% | Playwright 이미지 diff | LLM (코드 수정) |
167
+ | **Phase 3** | 90% | Playwright DOM 비교 | LLM (코드 수정) |
168
+
169
+ ### 워크플로우 개요
170
+
171
+ ```mermaid
172
+ flowchart TD
173
+ Start[Figma 디자인] --> Preflight[사전 검사]
174
+ Preflight --> FigmaGet[Figma 디자인 가져오기]
175
+
176
+ subgraph Phase1 [Phase 1: Figma MCP 추출 - 60%]
177
+ P1_Extract[Figma MCP로 코드 추출]
178
+ P1_Render[Playwright 렌더링]
179
+ P1_Compare[스크린샷 비교]
180
+ P1_Check{성공률 >= 60%?}
181
+ P1_HITL[HITL: 계속?]
182
+
183
+ P1_Extract --> P1_Render --> P1_Compare --> P1_Check
184
+ P1_Check -->|No| P1_HITL
185
+ P1_HITL -->|Yes| P1_Extract
186
+ P1_HITL -->|Manual| P1_Render
187
+ end
188
+
189
+ FigmaGet --> Phase1
190
+ P1_Check -->|Yes| Phase2
191
+
192
+ subgraph Phase2 [Phase 2: LLM 이미지 Diff - 70%]
193
+ P2_Diff[이미지 Diff 분석]
194
+ P2_LLM[LLM 코드 수정]
195
+ P2_Render[Playwright 렌더링]
196
+ P2_Compare[스크린샷 비교]
197
+ P2_Check{성공률 >= 70%?}
198
+ P2_HITL[HITL: 계속?]
199
+
200
+ P2_Diff --> P2_LLM --> P2_Render --> P2_Compare --> P2_Check
201
+ P2_Check -->|No| P2_HITL
202
+ P2_HITL -->|Yes| P2_Diff
203
+ P2_HITL -->|Manual| P2_Render
204
+ end
205
+
206
+ P2_Check -->|Yes| Phase3
207
+
208
+ subgraph Phase3 [Phase 3: LLM DOM 비교 - 90%]
209
+ P3_DOM[DOM 스냅샷 비교]
210
+ P3_LLM[LLM 코드 수정]
211
+ P3_Render[Playwright 렌더링]
212
+ P3_Compare[DOM 비교]
213
+ P3_Check{성공률 >= 90%?}
214
+ P3_HITL[HITL: 계속?]
215
+
216
+ P3_DOM --> P3_LLM --> P3_Render --> P3_Compare --> P3_Check
217
+ P3_Check -->|No| P3_HITL
218
+ P3_HITL -->|Yes| P3_DOM
219
+ P3_HITL -->|Manual| P3_Render
220
+ end
221
+
222
+ P3_Check -->|Yes| Done[완료]
223
+ ```
224
+
225
+ ### 시퀀스 다이어그램
160
226
 
161
227
  ```mermaid
162
228
  sequenceDiagram
@@ -168,26 +234,118 @@ sequenceDiagram
168
234
 
169
235
  User->>AI: "syr로 이 Figma 변환해줘"
170
236
 
237
+ Note over AI,D2C: Step 1: 사전 검사
171
238
  AI->>D2C: d2c_preflight_check()
172
239
  AI->>Figma: get_design_context() 확인
173
240
  AI->>PW: browser_snapshot() 확인
174
241
 
175
- AI->>D2C: d2c_get_design_rules()
242
+ Note over AI,Figma: Step 2: Figma 디자인 가져오기
176
243
  AI->>Figma: get_design_context(figmaUrl)
177
244
  AI->>Figma: get_screenshot()
178
245
 
179
- AI->>D2C: d2c_get_component_template()
180
- AI->>AI: 코드 생성
181
- AI->>D2C: d2c_validate_component()
246
+ rect rgb(255, 240, 240)
247
+ Note over AI,PW: Phase 1: Figma MCP 추출 (목표 60%)
248
+ loop 성공률 < 60% && HITL 승인
249
+ AI->>Figma: 코드 재추출
250
+ AI->>PW: browser_navigate() + screenshot
251
+ AI->>D2C: d2c_phase1_compare(successRate, iteration)
252
+ AI->>User: HITL 확인 요청
253
+ end
254
+ end
255
+
256
+ rect rgb(240, 255, 240)
257
+ Note over AI,PW: Phase 2: LLM 이미지 Diff (목표 70%)
258
+ loop 성공률 < 70% && HITL 승인
259
+ AI->>PW: 이미지 diff 분석
260
+ AI->>AI: LLM 코드 수정
261
+ AI->>PW: browser_navigate() + screenshot
262
+ AI->>D2C: d2c_phase2_image_diff(successRate, diffAreas)
263
+ AI->>User: HITL 확인 요청
264
+ end
265
+ end
182
266
 
183
- loop 완성될 때까지
184
- AI->>PW: browser_navigate()
185
- AI->>PW: browser_snapshot()
186
- AI->>D2C: d2c_compare_with_design()
187
- AI->>AI: 수정
267
+ rect rgb(240, 240, 255)
268
+ Note over AI,PW: Phase 3: LLM DOM 비교 (목표 90%)
269
+ loop 성공률 < 90% && HITL 승인
270
+ AI->>PW: DOM 스냅샷 비교
271
+ AI->>AI: LLM 코드 수정
272
+ AI->>PW: browser_navigate() + DOM 비교
273
+ AI->>D2C: d2c_phase3_dom_compare(successRate, domDiffs)
274
+ AI->>User: HITL 확인 요청
275
+ end
188
276
  end
189
277
 
190
- AI-->>User: 완성된 컴포넌트
278
+ AI->>D2C: d2c_workflow_status(phase1, phase2, phase3)
279
+ AI-->>User: 완성된 컴포넌트 + 최종 리포트
280
+ ```
281
+
282
+ ### HITL (Human-in-the-Loop)
283
+
284
+ 모든 Phase에서 사용자 개입이 가능합니다:
285
+
286
+ - **[Y]** 계속 - 자동 수정 후 반복
287
+ - **[N]** 완료 - 현재 상태로 다음 단계 진행
288
+ - **[M]** 수동 수정 - 사용자가 직접 코드 수정 후 재비교
289
+ - **[S]** 중단 - 워크플로우 종료
290
+
291
+ ### Phase별 도구
292
+
293
+ #### `d2c_phase1_compare`
294
+ Phase 1 스크린샷 비교 결과를 처리합니다.
295
+
296
+ ```typescript
297
+ {
298
+ successRate: number; // Playwright 비교 성공률 (0-100)
299
+ targetRate?: number; // 목표 성공률 (기본: 60)
300
+ iteration: number; // 현재 반복 횟수
301
+ maxIterations?: number; // 최대 반복 (기본: 5)
302
+ diffDetails?: string; // 차이점 설명
303
+ }
304
+ ```
305
+
306
+ #### `d2c_phase2_image_diff`
307
+ Phase 2 이미지 diff 결과를 처리합니다.
308
+
309
+ ```typescript
310
+ {
311
+ successRate: number; // Playwright 비교 성공률 (0-100)
312
+ targetRate?: number; // 목표 성공률 (기본: 70)
313
+ iteration: number; // 현재 반복 횟수
314
+ diffAreas?: Array<{ // 차이 영역들
315
+ area: string; // 영역 (예: "header", "button")
316
+ type: string; // 유형 (color, layout, spacing)
317
+ severity: "high" | "medium" | "low";
318
+ }>;
319
+ }
320
+ ```
321
+
322
+ #### `d2c_phase3_dom_compare`
323
+ Phase 3 DOM 비교 결과를 처리합니다.
324
+
325
+ ```typescript
326
+ {
327
+ successRate: number; // DOM 비교 성공률 (0-100)
328
+ targetRate?: number; // 목표 성공률 (기본: 90)
329
+ iteration: number; // 현재 반복 횟수
330
+ domDiffs?: Array<{ // DOM 차이점들
331
+ selector: string; // 요소 선택자
332
+ type: string; // missing, extra, attribute, text
333
+ expected?: string; // 예상 값
334
+ actual?: string; // 실제 값
335
+ }>;
336
+ }
337
+ ```
338
+
339
+ #### `d2c_workflow_status`
340
+ 전체 워크플로우 진행 상황을 표시합니다.
341
+
342
+ ```typescript
343
+ {
344
+ currentPhase: 1 | 2 | 3;
345
+ phase1?: { status: string; successRate: number; iterations: number; };
346
+ phase2?: { status: string; successRate: number; iterations: number; };
347
+ phase3?: { status: string; successRate: number; iterations: number; };
348
+ }
191
349
  ```
192
350
 
193
351
  ## 개발
package/dist/index.js CHANGED
@@ -104,7 +104,7 @@ const DEFAULT_RULES = `
104
104
  // MCP 서버 생성
105
105
  const server = new Server({
106
106
  name: "syr-d2c-workflow-mcp",
107
- version: "0.2.0",
107
+ version: "0.3.1",
108
108
  }, {
109
109
  capabilities: {
110
110
  tools: {},
@@ -193,37 +193,62 @@ ${SERVICE_IDENTIFIERS}
193
193
  required: ["code", "componentName"],
194
194
  },
195
195
  },
196
- // compare_with_design - 디자인 비교
196
+ // log_step - 실시간 진행 로그
197
197
  {
198
- name: "d2c_compare_with_design",
199
- description: `Figma 디자인 스크린샷과 렌더링 결과를 비교 분석합니다.
198
+ name: "d2c_log_step",
199
+ description: `워크플로우 진행 상황을 실시간으로 출력합니다.
200
200
  ${SERVICE_IDENTIFIERS}
201
201
 
202
- 📊 **비교 항목 (각 0-100점)**:
203
- - 레이아웃 일치도
204
- - 색상/타이포그래피 일치도
205
- - 간격/여백 일치도
206
- - 누락된 요소
207
-
208
- 💡 **사용법**:
209
- 1. figma-mcp.get_screenshot으로 원본 이미지 획득
210
- 2. playwright-mcp로 렌더링 결과 스크린샷
211
- 3. 이 도구로 비교 분석 (scores 필수 입력)`,
202
+ 📋 **각 단계 완료 시 호출하여 진행 상황을 사용자에게 알립니다.**`,
212
203
  inputSchema: {
213
204
  type: "object",
214
205
  properties: {
215
- designDescription: {
206
+ step: {
207
+ type: "number",
208
+ description: "현재 단계 번호 (1-6)",
209
+ },
210
+ stepName: {
216
211
  type: "string",
217
- description: "Figma 디자인 설명 (get_design_context 결과)",
212
+ description: "단계 이름",
218
213
  },
219
- renderedDescription: {
214
+ status: {
220
215
  type: "string",
221
- description: "렌더링된 결과 설명",
216
+ enum: ["start", "done", "error"],
217
+ description: "상태",
222
218
  },
223
- differences: {
224
- type: "array",
225
- items: { type: "string" },
226
- description: "발견된 차이점 목록",
219
+ message: {
220
+ type: "string",
221
+ description: "추가 메시지",
222
+ },
223
+ iteration: {
224
+ type: "number",
225
+ description: "반복 중인 경우 현재 반복 횟수",
226
+ },
227
+ },
228
+ required: ["step", "stepName", "status"],
229
+ },
230
+ },
231
+ // ============ 3단계 PHASE 도구들 ============
232
+ // Phase 1: Figma MCP 기반 스크린샷 비교
233
+ {
234
+ name: "d2c_phase1_compare",
235
+ description: `[Phase 1] Figma MCP로 추출한 코드의 스크린샷을 원본과 비교합니다.
236
+ ${SERVICE_IDENTIFIERS}
237
+
238
+ 📊 **Phase 1 - 목표 성공률: 60% (설정 가능)**
239
+ - 비교 방법: Playwright toHaveScreenshot() 픽셀 비교
240
+ - 수정 주체: Figma MCP (코드 재추출)
241
+ - HITL: 매 반복마다 사용자 확인`,
242
+ inputSchema: {
243
+ type: "object",
244
+ properties: {
245
+ successRate: {
246
+ type: "number",
247
+ description: "현재 성공률 (0-100, Playwright 비교 결과)",
248
+ },
249
+ targetRate: {
250
+ type: "number",
251
+ description: "목표 성공률 (기본: 60)",
227
252
  },
228
253
  iteration: {
229
254
  type: "number",
@@ -233,75 +258,89 @@ ${SERVICE_IDENTIFIERS}
233
258
  type: "number",
234
259
  description: "최대 반복 횟수 (기본: 5)",
235
260
  },
236
- scores: {
237
- type: "object",
238
- properties: {
239
- layout: { type: "number", description: "레이아웃 점수 (0-100)" },
240
- colors: { type: "number", description: "색상 점수 (0-100)" },
241
- typography: { type: "number", description: "타이포그래피 점수 (0-100)" },
242
- spacing: { type: "number", description: "간격 점수 (0-100)" },
243
- },
244
- description: "항목별 점수 (0-100)",
261
+ diffDetails: {
262
+ type: "string",
263
+ description: "Playwright 비교에서 발견된 차이점 설명",
264
+ },
265
+ previousRates: {
266
+ type: "array",
267
+ items: { type: "number" },
268
+ description: "이전 반복의 성공률들",
245
269
  },
246
270
  },
247
- required: ["designDescription", "renderedDescription", "scores"],
271
+ required: ["successRate", "iteration"],
248
272
  },
249
273
  },
250
- // log_step - 실시간 진행 로그
274
+ // Phase 2: LLM 기반 이미지 Diff 수정
251
275
  {
252
- name: "d2c_log_step",
253
- description: `워크플로우 진행 상황을 실시간으로 출력합니다.
276
+ name: "d2c_phase2_image_diff",
277
+ description: `[Phase 2] 이미지 diff를 분석하고 LLM이 코드를 수정합니다.
254
278
  ${SERVICE_IDENTIFIERS}
255
279
 
256
- 📋 **각 단계 완료 호출하여 진행 상황을 사용자에게 알립니다.**`,
280
+ 📊 **Phase 2 - 목표 성공률: 70% (설정 가능)**
281
+ - 비교 방법: Playwright toHaveScreenshot() 픽셀 비교
282
+ - 수정 주체: LLM (코드 직접 수정)
283
+ - HITL: 매 반복마다 사용자 확인`,
257
284
  inputSchema: {
258
285
  type: "object",
259
286
  properties: {
260
- step: {
287
+ successRate: {
261
288
  type: "number",
262
- description: "현재 단계 번호 (1-6)",
289
+ description: "현재 성공률 (0-100, Playwright 비교 결과)",
263
290
  },
264
- stepName: {
265
- type: "string",
266
- description: "단계 이름",
267
- },
268
- status: {
269
- type: "string",
270
- enum: ["start", "done", "error"],
271
- description: "상태",
272
- },
273
- message: {
274
- type: "string",
275
- description: "추가 메시지",
291
+ targetRate: {
292
+ type: "number",
293
+ description: "목표 성공률 (기본: 70)",
276
294
  },
277
295
  iteration: {
278
296
  type: "number",
279
- description: "반복 중인 경우 현재 반복 횟수",
297
+ description: "현재 반복 횟수",
298
+ },
299
+ maxIterations: {
300
+ type: "number",
301
+ description: "최대 반복 횟수 (기본: 5)",
302
+ },
303
+ diffAreas: {
304
+ type: "array",
305
+ items: {
306
+ type: "object",
307
+ properties: {
308
+ area: { type: "string", description: "차이 영역 (예: header, button)" },
309
+ type: { type: "string", description: "차이 유형 (color, layout, spacing)" },
310
+ severity: { type: "string", enum: ["high", "medium", "low"] },
311
+ },
312
+ },
313
+ description: "이미지 diff에서 발견된 차이 영역들",
314
+ },
315
+ previousRates: {
316
+ type: "array",
317
+ items: { type: "number" },
318
+ description: "이전 반복의 성공률들",
280
319
  },
281
320
  },
282
- required: ["step", "stepName", "status"],
321
+ required: ["successRate", "iteration"],
283
322
  },
284
323
  },
285
- // iteration_check - 반복 제어
324
+ // Phase 3: DOM 비교 기반 수정
286
325
  {
287
- name: "d2c_iteration_check",
288
- description: `반복 계속 여부를 판단합니다.
326
+ name: "d2c_phase3_dom_compare",
327
+ description: `[Phase 3] DOM 구조를 비교하고 LLM이 코드를 수정합니다.
289
328
  ${SERVICE_IDENTIFIERS}
290
329
 
291
- 📊 **판단 기준**:
292
- - 70점 미만: 자동으로 계속 진행
293
- - 70점 이상: 사용자 확인 필요
294
- - 최대 반복 도달 또는 점수 하락: 중단 권장`,
330
+ 📊 **Phase 3 - 목표 성공률: 90% (설정 가능)**
331
+ - 비교 방법: Playwright DOM 스냅샷 비교
332
+ - 수정 주체: LLM (코드 직접 수정)
333
+ - HITL: 반복마다 사용자 확인`,
295
334
  inputSchema: {
296
335
  type: "object",
297
336
  properties: {
298
- currentScore: {
337
+ successRate: {
299
338
  type: "number",
300
- description: "현재 종합 점수 (0-100)",
339
+ description: "현재 성공률 (0-100, DOM 비교 결과)",
301
340
  },
302
- targetScore: {
341
+ targetRate: {
303
342
  type: "number",
304
- description: "목표 점수 (기본: 70)",
343
+ description: "목표 성공률 (기본: 90)",
305
344
  },
306
345
  iteration: {
307
346
  type: "number",
@@ -311,13 +350,72 @@ ${SERVICE_IDENTIFIERS}
311
350
  type: "number",
312
351
  description: "최대 반복 횟수 (기본: 5)",
313
352
  },
314
- previousScores: {
353
+ domDiffs: {
354
+ type: "array",
355
+ items: {
356
+ type: "object",
357
+ properties: {
358
+ selector: { type: "string", description: "차이가 있는 요소 선택자" },
359
+ expected: { type: "string", description: "예상 값" },
360
+ actual: { type: "string", description: "실제 값" },
361
+ type: { type: "string", description: "차이 유형 (missing, extra, attribute, text)" },
362
+ },
363
+ },
364
+ description: "DOM 비교에서 발견된 차이점들",
365
+ },
366
+ previousRates: {
315
367
  type: "array",
316
368
  items: { type: "number" },
317
- description: "이전 반복의 점수들",
369
+ description: "이전 반복의 성공률들",
370
+ },
371
+ },
372
+ required: ["successRate", "iteration"],
373
+ },
374
+ },
375
+ // 워크플로우 전체 상태 표시
376
+ {
377
+ name: "d2c_workflow_status",
378
+ description: `전체 3단계 워크플로우 진행 상황을 표시합니다.
379
+ ${SERVICE_IDENTIFIERS}
380
+
381
+ 📊 **3단계 Phase 시스템**:
382
+ - Phase 1: Figma MCP 추출 (60%)
383
+ - Phase 2: LLM 이미지 Diff (70%)
384
+ - Phase 3: LLM DOM 비교 (90%)`,
385
+ inputSchema: {
386
+ type: "object",
387
+ properties: {
388
+ currentPhase: {
389
+ type: "number",
390
+ enum: [1, 2, 3],
391
+ description: "현재 Phase (1, 2, 3)",
392
+ },
393
+ phase1: {
394
+ type: "object",
395
+ properties: {
396
+ status: { type: "string", enum: ["pending", "in_progress", "completed", "skipped"] },
397
+ successRate: { type: "number" },
398
+ iterations: { type: "number" },
399
+ },
400
+ },
401
+ phase2: {
402
+ type: "object",
403
+ properties: {
404
+ status: { type: "string", enum: ["pending", "in_progress", "completed", "skipped"] },
405
+ successRate: { type: "number" },
406
+ iterations: { type: "number" },
407
+ },
408
+ },
409
+ phase3: {
410
+ type: "object",
411
+ properties: {
412
+ status: { type: "string", enum: ["pending", "in_progress", "completed", "skipped"] },
413
+ successRate: { type: "number" },
414
+ iterations: { type: "number" },
415
+ },
318
416
  },
319
417
  },
320
- required: ["currentScore", "iteration"],
418
+ required: ["currentPhase"],
321
419
  },
322
420
  },
323
421
  // get_component_template - 템플릿 생성
@@ -561,109 +659,301 @@ ${input.message ? ` → ${input.message}` : ""}
561
659
  ],
562
660
  };
563
661
  }
564
- case "d2c_iteration_check": {
662
+ // ============ 3단계 PHASE 핸들러 ============
663
+ case "d2c_phase1_compare": {
565
664
  const input = z
566
665
  .object({
567
- currentScore: z.number(),
568
- targetScore: z.number().optional().default(70),
666
+ successRate: z.number(),
667
+ targetRate: z.number().optional().default(60),
569
668
  iteration: z.number(),
570
669
  maxIterations: z.number().optional().default(5),
571
- previousScores: z.array(z.number()).optional(),
670
+ diffDetails: z.string().optional(),
671
+ previousRates: z.array(z.number()).optional(),
572
672
  })
573
673
  .parse(args);
574
- const { currentScore, targetScore, iteration, maxIterations, previousScores } = input;
575
- // 점수 변화 계산
576
- const lastScore = previousScores?.length ? previousScores[previousScores.length - 1] : null;
577
- const scoreDiff = lastScore !== null ? currentScore - lastScore : null;
578
- const isImproving = scoreDiff === null || scoreDiff >= 0;
674
+ const { successRate, targetRate, iteration, maxIterations, diffDetails, previousRates } = input;
675
+ // 성공률 변화 계산
676
+ const lastRate = previousRates?.length ? previousRates[previousRates.length - 1] : null;
677
+ const rateDiff = lastRate !== null ? successRate - lastRate : null;
579
678
  // 판단 로직
580
679
  let recommendation;
581
680
  let reason;
582
681
  if (iteration >= maxIterations) {
583
- recommendation = "stop";
584
- reason = `최대 반복 횟수(${maxIterations}회) 도달`;
682
+ recommendation = "user_confirm";
683
+ reason = `최대 반복 횟수(${maxIterations}회) 도달 - 사용자 결정 필요`;
585
684
  }
586
- else if (!isImproving && scoreDiff !== null && scoreDiff < -10) {
685
+ else if (rateDiff !== null && rateDiff < -10) {
587
686
  recommendation = "stop";
588
- reason = `점수 하락 감지 (${scoreDiff})`;
687
+ reason = `성공률 하락 감지 (${rateDiff.toFixed(1)}%)`;
589
688
  }
590
- else if (currentScore >= targetScore) {
591
- recommendation = "user_confirm";
592
- reason = `목표 점수(${targetScore}) 달성! 사용자 확인 필요`;
689
+ else if (successRate >= targetRate) {
690
+ recommendation = "next_phase";
691
+ reason = `Phase 1 목표(${targetRate}%) 달성! Phase 2로 진행`;
593
692
  }
594
693
  else {
595
694
  recommendation = "continue";
596
- reason = `목표 점수(${targetScore}) 미달, 자동 계속`;
695
+ reason = `목표(${targetRate}%) 미달 - Figma MCP로 재추출`;
597
696
  }
598
- const statusEmoji = recommendation === "continue" ? "🔄" : recommendation === "user_confirm" ? "✋" : "🛑";
599
- const diffText = scoreDiff !== null ? ` (${scoreDiff >= 0 ? "+" : ""}${scoreDiff})` : "";
697
+ const statusEmoji = recommendation === "continue" ? "🔄" :
698
+ recommendation === "next_phase" ? "" :
699
+ recommendation === "user_confirm" ? "✋" : "🛑";
700
+ const diffText = rateDiff !== null ? ` (${rateDiff >= 0 ? "+" : ""}${rateDiff.toFixed(1)}%)` : "";
701
+ const progressBar = "█".repeat(Math.round(successRate / 10)) + "░".repeat(10 - Math.round(successRate / 10));
600
702
  return {
601
703
  content: [
602
704
  {
603
705
  type: "text",
604
706
  text: `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
605
- ${statusEmoji} **반복 ${iteration}/${maxIterations} 판단 결과**
707
+ 📊 **Phase 1: Figma MCP 스크린샷 비교**
708
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
709
+
710
+ ┌────────────────────────────────────────┐
711
+ │ 반복: ${iteration}/${maxIterations} │
712
+ ├────────────────────────────────────────┤
713
+ │ 현재 성공률: ${progressBar} ${successRate.toFixed(1)}%${diffText} │
714
+ │ 목표 성공률: ${"█".repeat(Math.round(targetRate / 10))}${"░".repeat(10 - Math.round(targetRate / 10))} ${targetRate}% │
715
+ ├────────────────────────────────────────┤
716
+ │ 수정 주체: Figma MCP (코드 재추출) │
717
+ └────────────────────────────────────────┘
606
718
 
607
- 📊 현재 점수: **${currentScore}점**${diffText}
608
- 🎯 목표 점수: ${targetScore}점
719
+ ${diffDetails ? `## 발견된 차이점\n${diffDetails}\n` : ""}
720
+ ${statusEmoji} **권장**: ${recommendation === "continue" ? "Figma MCP로 재추출 후 반복" :
721
+ recommendation === "next_phase" ? "Phase 2로 진행" :
722
+ recommendation === "user_confirm" ? "사용자 결정 필요" : "중단 권장"}
609
723
 
610
- **권장**: ${recommendation === "continue" ? "계속 진행" : recommendation === "user_confirm" ? "사용자 확인" : "중단"}
611
724
  **이유**: ${reason}
725
+
726
+ ## HITL 옵션
727
+ - [Y] 계속 (${recommendation === "next_phase" ? "Phase 2 진행" : "반복"})
728
+ - [N] 현재 상태로 완료
729
+ - [M] 수동 수정 후 재비교
730
+ - [S] 워크플로우 중단
612
731
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`,
613
732
  },
614
733
  ],
615
734
  };
616
735
  }
617
- case "d2c_compare_with_design": {
736
+ case "d2c_phase2_image_diff": {
618
737
  const input = z
619
738
  .object({
620
- designDescription: z.string(),
621
- renderedDescription: z.string(),
622
- differences: z.array(z.string()).optional(),
623
- iteration: z.number().optional(),
739
+ successRate: z.number(),
740
+ targetRate: z.number().optional().default(70),
741
+ iteration: z.number(),
624
742
  maxIterations: z.number().optional().default(5),
625
- scores: z.object({
626
- layout: z.number(),
627
- colors: z.number(),
628
- typography: z.number(),
629
- spacing: z.number(),
630
- }),
743
+ diffAreas: z.array(z.object({
744
+ area: z.string(),
745
+ type: z.string(),
746
+ severity: z.enum(["high", "medium", "low"]).optional(),
747
+ })).optional(),
748
+ previousRates: z.array(z.number()).optional(),
631
749
  })
632
750
  .parse(args);
633
- const { scores, iteration, maxIterations } = input;
634
- const avgScore = Math.round((scores.layout + scores.colors + scores.typography + scores.spacing) / 4);
635
- // 점수 생성 함수
636
- const scoreBar = (score) => {
637
- const filled = Math.round(score / 10);
638
- return "█".repeat(filled) + "░".repeat(10 - filled);
751
+ const { successRate, targetRate, iteration, maxIterations, diffAreas, previousRates } = input;
752
+ const lastRate = previousRates?.length ? previousRates[previousRates.length - 1] : null;
753
+ const rateDiff = lastRate !== null ? successRate - lastRate : null;
754
+ let recommendation;
755
+ let reason;
756
+ if (iteration >= maxIterations) {
757
+ recommendation = "user_confirm";
758
+ reason = `최대 반복 횟수(${maxIterations}회) 도달 - 사용자 결정 필요`;
759
+ }
760
+ else if (rateDiff !== null && rateDiff < -10) {
761
+ recommendation = "stop";
762
+ reason = `성공률 하락 감지 (${rateDiff.toFixed(1)}%)`;
763
+ }
764
+ else if (successRate >= targetRate) {
765
+ recommendation = "next_phase";
766
+ reason = `Phase 2 목표(${targetRate}%) 달성! Phase 3로 진행`;
767
+ }
768
+ else {
769
+ recommendation = "continue";
770
+ reason = `목표(${targetRate}%) 미달 - LLM이 코드 수정`;
771
+ }
772
+ const statusEmoji = recommendation === "continue" ? "🔄" :
773
+ recommendation === "next_phase" ? "✅" :
774
+ recommendation === "user_confirm" ? "✋" : "🛑";
775
+ const diffText = rateDiff !== null ? ` (${rateDiff >= 0 ? "+" : ""}${rateDiff.toFixed(1)}%)` : "";
776
+ const progressBar = "█".repeat(Math.round(successRate / 10)) + "░".repeat(10 - Math.round(successRate / 10));
777
+ // diff 영역 표시
778
+ const diffAreasText = diffAreas?.length ? diffAreas.map(d => {
779
+ const severityIcon = d.severity === "high" ? "🔴" : d.severity === "medium" ? "🟡" : "🟢";
780
+ return `${severityIcon} ${d.area}: ${d.type}`;
781
+ }).join("\n") : "";
782
+ return {
783
+ content: [
784
+ {
785
+ type: "text",
786
+ text: `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
787
+ 📊 **Phase 2: LLM 이미지 Diff 수정**
788
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
789
+
790
+ ┌────────────────────────────────────────┐
791
+ │ 반복: ${iteration}/${maxIterations} │
792
+ ├────────────────────────────────────────┤
793
+ │ 현재 성공률: ${progressBar} ${successRate.toFixed(1)}%${diffText} │
794
+ │ 목표 성공률: ${"█".repeat(Math.round(targetRate / 10))}${"░".repeat(10 - Math.round(targetRate / 10))} ${targetRate}% │
795
+ ├────────────────────────────────────────┤
796
+ │ 수정 주체: LLM (코드 직접 수정) │
797
+ └────────────────────────────────────────┘
798
+
799
+ ${diffAreasText ? `## 이미지 Diff 분석\n${diffAreasText}\n` : ""}
800
+ ${statusEmoji} **권장**: ${recommendation === "continue" ? "LLM이 코드 수정 후 반복" :
801
+ recommendation === "next_phase" ? "Phase 3로 진행" :
802
+ recommendation === "user_confirm" ? "사용자 결정 필요" : "중단 권장"}
803
+
804
+ **이유**: ${reason}
805
+
806
+ ## LLM 수정 가이드
807
+ ${diffAreas?.filter(d => d.severity === "high").map(d => `- 우선 수정: ${d.area}의 ${d.type} 문제`).join("\n") || "- 이미지 diff 결과를 기반으로 수정"}
808
+
809
+ ## HITL 옵션
810
+ - [Y] 계속 (${recommendation === "next_phase" ? "Phase 3 진행" : "LLM 수정 반복"})
811
+ - [N] 현재 상태로 완료
812
+ - [M] 수동 수정 후 재비교
813
+ - [S] 워크플로우 중단
814
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`,
815
+ },
816
+ ],
639
817
  };
640
- const checkMark = (score) => score >= 70 ? "✓" : "✗";
641
- const iterationHeader = iteration ? `반복 ${iteration}/${maxIterations}` : "";
818
+ }
819
+ case "d2c_phase3_dom_compare": {
820
+ const input = z
821
+ .object({
822
+ successRate: z.number(),
823
+ targetRate: z.number().optional().default(90),
824
+ iteration: z.number(),
825
+ maxIterations: z.number().optional().default(5),
826
+ domDiffs: z.array(z.object({
827
+ selector: z.string(),
828
+ expected: z.string().optional(),
829
+ actual: z.string().optional(),
830
+ type: z.string(),
831
+ })).optional(),
832
+ previousRates: z.array(z.number()).optional(),
833
+ })
834
+ .parse(args);
835
+ const { successRate, targetRate, iteration, maxIterations, domDiffs, previousRates } = input;
836
+ const lastRate = previousRates?.length ? previousRates[previousRates.length - 1] : null;
837
+ const rateDiff = lastRate !== null ? successRate - lastRate : null;
838
+ let recommendation;
839
+ let reason;
840
+ if (iteration >= maxIterations) {
841
+ recommendation = "user_confirm";
842
+ reason = `최대 반복 횟수(${maxIterations}회) 도달 - 사용자 결정 필요`;
843
+ }
844
+ else if (rateDiff !== null && rateDiff < -10) {
845
+ recommendation = "stop";
846
+ reason = `성공률 하락 감지 (${rateDiff.toFixed(1)}%)`;
847
+ }
848
+ else if (successRate >= targetRate) {
849
+ recommendation = "complete";
850
+ reason = `Phase 3 목표(${targetRate}%) 달성! 워크플로우 완료`;
851
+ }
852
+ else {
853
+ recommendation = "continue";
854
+ reason = `목표(${targetRate}%) 미달 - LLM이 DOM 기반 수정`;
855
+ }
856
+ const statusEmoji = recommendation === "continue" ? "🔄" :
857
+ recommendation === "complete" ? "🎉" :
858
+ recommendation === "user_confirm" ? "✋" : "🛑";
859
+ const diffText = rateDiff !== null ? ` (${rateDiff >= 0 ? "+" : ""}${rateDiff.toFixed(1)}%)` : "";
860
+ const progressBar = "█".repeat(Math.round(successRate / 10)) + "░".repeat(10 - Math.round(successRate / 10));
861
+ // DOM diff 표시
862
+ const domDiffsText = domDiffs?.length ? domDiffs.slice(0, 5).map(d => {
863
+ const typeIcon = d.type === "missing" ? "❌" : d.type === "extra" ? "➕" : "🔄";
864
+ return `${typeIcon} ${d.selector}: ${d.type}${d.expected ? ` (예상: ${d.expected})` : ""}`;
865
+ }).join("\n") : "";
642
866
  return {
643
867
  content: [
644
868
  {
645
869
  type: "text",
646
870
  text: `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
647
- 📊 **디자인 비교 결과** ${iterationHeader}
871
+ 📊 **Phase 3: LLM DOM 비교 수정**
648
872
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
649
873
 
650
- ┌────────────┬────────────┬──────┬──────┐
651
- 항목 │ 점수바 점수 │ 상태 │
652
- ├────────────┼────────────┼──────┼──────┤
653
- 레이아웃 │ ${scoreBar(scores.layout)} ${String(scores.layout).padStart(3)} │ ${checkMark(scores.layout)}
654
- 색상 │ ${scoreBar(scores.colors)}${String(scores.colors).padStart(3)}${checkMark(scores.colors)}
655
- │ 타이포 │ ${scoreBar(scores.typography)} │ ${String(scores.typography).padStart(3)} │ ${checkMark(scores.typography)} │
656
- 간격 │ ${scoreBar(scores.spacing)} ${String(scores.spacing).padStart(3)} ${checkMark(scores.spacing)} │
657
- ├────────────┼────────────┼──────┼──────┤
658
- │ **종합** │ ${scoreBar(avgScore)} │ **${String(avgScore).padStart(3)}** │ ${checkMark(avgScore)} │
659
- └────────────┴────────────┴──────┴──────┘
660
-
661
- ${input.differences?.length ? `
662
- ## 발견된 차이점
663
- ${input.differences.map((d) => `- ${d}`).join("\n")}
664
- ` : ""}
665
- ## 다음 단계
666
- \`d2c_iteration_check\` 호출하여 계속 여부 판단`,
874
+ ┌────────────────────────────────────────┐
875
+ 반복: ${iteration}/${maxIterations}
876
+ ├────────────────────────────────────────┤
877
+ 현재 성공률: ${progressBar} ${successRate.toFixed(1)}%${diffText}
878
+ 목표 성공률: ${"█".repeat(Math.round(targetRate / 10))}${"░".repeat(10 - Math.round(targetRate / 10))} ${targetRate}%
879
+ ├────────────────────────────────────────┤
880
+ 수정 주체: LLM (DOM 기반 수정)
881
+ └────────────────────────────────────────┘
882
+
883
+ ${domDiffsText ? `## DOM 차이점 (상위 5개)\n${domDiffsText}\n` : ""}
884
+ ${statusEmoji} **권장**: ${recommendation === "continue" ? "LLM이 DOM 기반 수정 후 반복" :
885
+ recommendation === "complete" ? "워크플로우 완료!" :
886
+ recommendation === "user_confirm" ? "사용자 결정 필요" : "중단 권장"}
887
+
888
+ **이유**: ${reason}
889
+
890
+ ## HITL 옵션
891
+ - [Y] 계속 (${recommendation === "complete" ? "완료" : "LLM 수정 반복"})
892
+ - [N] 현재 상태로 완료
893
+ - [M] 수동 수정 후 재비교
894
+ - [S] 워크플로우 중단
895
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`,
896
+ },
897
+ ],
898
+ };
899
+ }
900
+ case "d2c_workflow_status": {
901
+ const input = z
902
+ .object({
903
+ currentPhase: z.number(),
904
+ phase1: z.object({
905
+ status: z.enum(["pending", "in_progress", "completed", "skipped"]).optional(),
906
+ successRate: z.number().optional(),
907
+ iterations: z.number().optional(),
908
+ }).optional(),
909
+ phase2: z.object({
910
+ status: z.enum(["pending", "in_progress", "completed", "skipped"]).optional(),
911
+ successRate: z.number().optional(),
912
+ iterations: z.number().optional(),
913
+ }).optional(),
914
+ phase3: z.object({
915
+ status: z.enum(["pending", "in_progress", "completed", "skipped"]).optional(),
916
+ successRate: z.number().optional(),
917
+ iterations: z.number().optional(),
918
+ }).optional(),
919
+ })
920
+ .parse(args);
921
+ const getStatusIcon = (status) => {
922
+ switch (status) {
923
+ case "completed": return "✅";
924
+ case "in_progress": return "🔄";
925
+ case "skipped": return "⏭️";
926
+ default: return "⬜";
927
+ }
928
+ };
929
+ const formatPhase = (phase, num, target, name) => {
930
+ const icon = getStatusIcon(phase?.status);
931
+ const rate = phase?.successRate !== undefined ? `${phase.successRate.toFixed(1)}%` : "--%";
932
+ const iter = phase?.iterations !== undefined ? `${phase.iterations}회` : "--";
933
+ return `│ ${icon} Phase ${num}: ${name.padEnd(20)} │ ${rate.padStart(6)} │ ${target}% │ ${iter.padStart(4)} │`;
934
+ };
935
+ return {
936
+ content: [
937
+ {
938
+ type: "text",
939
+ text: `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
940
+ 📊 **D2C 3단계 워크플로우 상태**
941
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
942
+
943
+ ┌────────────────────────────────┬────────┬─────┬──────┐
944
+ │ Phase │ 성공률 │ 목표│ 반복 │
945
+ ├────────────────────────────────┼────────┼─────┼──────┤
946
+ ${formatPhase(input.phase1, 1, 60, "Figma MCP 추출")}
947
+ ${formatPhase(input.phase2, 2, 70, "LLM 이미지 Diff")}
948
+ ${formatPhase(input.phase3, 3, 90, "LLM DOM 비교")}
949
+ └────────────────────────────────┴────────┴─────┴──────┘
950
+
951
+ 🎯 현재 Phase: **${input.currentPhase}**
952
+
953
+ ## Phase 흐름
954
+ Phase 1 (60%) → Phase 2 (70%) → Phase 3 (90%) → 완료
955
+ ${input.currentPhase === 1 ? " ↑ 현재" : input.currentPhase === 2 ? " ↑ 현재" : " ↑ 현재"}
956
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`,
667
957
  },
668
958
  ],
669
959
  };
@@ -842,62 +1132,93 @@ server.setRequestHandler(GetPromptRequestSchema, async (request) => {
842
1132
  role: "user",
843
1133
  content: {
844
1134
  type: "text",
845
- text: `## SYR D2C 워크플로우 실행
1135
+ text: `## SYR D2C 3단계 워크플로우 실행
846
1136
 
847
1137
  ### 입력 정보
848
1138
  - Figma: ${figmaUrl}
849
1139
  - 컴포넌트명: ${componentName}
850
1140
  - 프레임워크: ${framework}
851
1141
 
852
- ### ⚠️ 중요: 단계마다 \`d2c_log_step\` 호출하여 진행 상황 출력!
1142
+ ### 📊 3단계 Phase 시스템
1143
+ | Phase | 목표 | 비교 방법 | 수정 주체 |
1144
+ |-------|------|----------|----------|
1145
+ | **1** | 60% | Playwright 스크린샷 | Figma MCP 재추출 |
1146
+ | **2** | 70% | Playwright 이미지 diff | LLM 코드 수정 |
1147
+ | **3** | 90% | Playwright DOM 비교 | LLM 코드 수정 |
853
1148
 
854
- ### 워크플로우 단계
1149
+ ---
855
1150
 
856
- **Step 1: 사전 검사**
857
- 1. \`d2c_log_step(step:1, stepName:"사전 검사", status:"start")\` 호출
1151
+ ### Step 1: 사전 검사
1152
+ 1. \`d2c_log_step(step:1, stepName:"사전 검사", status:"start")\`
858
1153
  2. \`d2c_preflight_check\` 호출
859
- 3. figma-mcp 확인: \`get_design_context\` 호출 시도
860
- 4. playwright-mcp 확인: \`browser_snapshot\` 호출 시도
861
- 5. \`d2c_log_step(step:1, stepName:"사전 검사", status:"done")\` 호출
862
-
863
- **Step 2: 규칙 수집**
864
- 1. \`d2c_log_step(step:2, stepName:"규칙 수집", status:"start")\` 호출
865
- 2. \`d2c_get_design_rules\` 호출
866
- 3. \`d2c_log_step(step:2, stepName:"규칙 수집", status:"done")\` 호출
1154
+ 3. figma-mcp, playwright-mcp 확인
1155
+ 4. \`d2c_log_step(step:1, stepName:"사전 검사", status:"done")\`
867
1156
 
868
- **Step 3: Figma 디자인 가져오기**
869
- 1. \`d2c_log_step(step:3, stepName:"Figma 디자인 가져오기", status:"start")\` 호출
1157
+ ### Step 2: Figma 디자인 가져오기
1158
+ 1. \`d2c_log_step(step:2, stepName:"Figma 디자인", status:"start")\`
870
1159
  2. \`figma-mcp.get_design_context\` 호출
871
- 3. 디자인 구조, 색상, 타이포그래피, 간격 분석
872
- 4. \`d2c_log_step(step:3, stepName:"Figma 디자인 가져오기", status:"done")\` 호출
873
-
874
- **Step 4: 컴포넌트 생성 및 반복 개선** (핵심!)
875
- 1. \`d2c_log_step(step:4, stepName:"컴포넌트 생성", status:"start", iteration:1)\` 호출
876
- 2. \`d2c_get_component_template\`로 보일러플레이트 생성
877
- 3. Figma 디자인 정보를 기반으로 코드 작성
878
- 4. \`d2c_validate_component\`로 검증
879
- 5. \`playwright-mcp.browser_navigate\`로 페이지 열기
880
- 6. \`playwright-mcp.browser_snapshot\`으로 스크린샷
881
- 7. **\`d2c_compare_with_design\`** 호출 (scores 필수 입력!)
882
- - layout, colors, typography, spacing 각각 0-100점 평가
883
- 8. **\`d2c_iteration_check\`** 호출하여 계속 여부 판단
884
- - 70점 미만: 자동으로 수정 후 반복
885
- - 70점 이상: 사용자에게 확인 요청
886
- - 최대 5회 반복
887
- 9. \`d2c_log_step(step:4, stepName:"컴포넌트 생성", status:"done", iteration:N)\` 호출
888
-
889
- **Step 5: 최종 검증**
890
- 1. \`d2c_log_step(step:5, stepName:"최종 검증", status:"start")\` 호출
891
- 2. \`d2c_validate_component\`로 최종 검증
892
- 3. \`d2c_log_step(step:5, stepName:"최종 검증", status:"done")\` 호출
893
-
894
- **Step 6: 완료**
895
- 1. \`d2c_log_step(step:6, stepName:"완료", status:"done")\` 호출
896
- 2. 최종 코드와 파일 경로 보고
897
- 3. 반복 히스토리 요약 (점수 변화)
1160
+ 3. \`figma-mcp.get_screenshot\` 으로 원본 스크린샷 저장
1161
+ 4. \`d2c_log_step(step:2, stepName:"Figma 디자인", status:"done")\`
898
1162
 
899
1163
  ---
900
- 위 워크플로우대로 진행해주세요. **매 단계마다 d2c_log_step 호출 필수!**`,
1164
+
1165
+ ### 🔄 Phase 1: Figma MCP 추출 (목표 60%)
1166
+ 1. \`d2c_log_step(step:3, stepName:"Phase 1", status:"start", iteration:1)\`
1167
+ 2. \`d2c_get_component_template\`로 템플릿 생성
1168
+ 3. **Figma MCP로 코드 추출/수정**
1169
+ 4. \`playwright-mcp.browser_navigate\`로 렌더링
1170
+ 5. \`playwright-mcp.browser_screenshot\`으로 스크린샷
1171
+ 6. **Playwright toHaveScreenshot()으로 비교하여 성공률 계산**
1172
+ 7. **\`d2c_phase1_compare\`** 호출 (successRate, iteration 필수!)
1173
+ 8. **HITL 확인**: 사용자 응답에 따라:
1174
+ - [Y] → 60% 미달이면 반복, 달성이면 Phase 2로
1175
+ - [M] → 수동 수정 후 재비교
1176
+ - [N] → 현재 상태로 다음 단계
1177
+ 9. \`d2c_log_step(step:3, stepName:"Phase 1", status:"done")\`
1178
+
1179
+ ---
1180
+
1181
+ ### 🔄 Phase 2: LLM 이미지 Diff (목표 70%)
1182
+ 1. \`d2c_log_step(step:4, stepName:"Phase 2", status:"start", iteration:1)\`
1183
+ 2. **Playwright 이미지 diff 분석**
1184
+ 3. diff 결과 기반으로 **LLM이 코드 수정**
1185
+ 4. 렌더링 후 스크린샷 비교
1186
+ 5. **\`d2c_phase2_image_diff\`** 호출 (successRate, diffAreas 포함!)
1187
+ 6. **HITL 확인**: 사용자 응답에 따라:
1188
+ - [Y] → 70% 미달이면 LLM 수정 반복, 달성이면 Phase 3로
1189
+ - [M] → 수동 수정 후 재비교
1190
+ - [N] → 현재 상태로 다음 단계
1191
+ 7. \`d2c_log_step(step:4, stepName:"Phase 2", status:"done")\`
1192
+
1193
+ ---
1194
+
1195
+ ### 🔄 Phase 3: LLM DOM 비교 (목표 90%)
1196
+ 1. \`d2c_log_step(step:5, stepName:"Phase 3", status:"start", iteration:1)\`
1197
+ 2. **Playwright DOM 스냅샷 비교**
1198
+ 3. DOM 차이 기반으로 **LLM이 코드 수정**
1199
+ 4. 렌더링 후 DOM 비교
1200
+ 5. **\`d2c_phase3_dom_compare\`** 호출 (successRate, domDiffs 포함!)
1201
+ 6. **HITL 확인**: 사용자 응답에 따라:
1202
+ - [Y] → 90% 미달이면 LLM 수정 반복, 달성이면 완료
1203
+ - [M] → 수동 수정 후 재비교
1204
+ - [N] → 현재 상태로 완료
1205
+ 7. \`d2c_log_step(step:5, stepName:"Phase 3", status:"done")\`
1206
+
1207
+ ---
1208
+
1209
+ ### Step 6: 완료
1210
+ 1. \`d2c_log_step(step:6, stepName:"완료", status:"done")\`
1211
+ 2. \`d2c_workflow_status\` 호출하여 최종 상태 표시
1212
+ 3. 최종 코드와 파일 경로 보고
1213
+ 4. 각 Phase별 성공률 변화 히스토리 요약
1214
+
1215
+ ---
1216
+
1217
+ **⚠️ 중요 규칙**:
1218
+ - 매 Phase마다 **반드시 HITL 확인** (사용자에게 계속 여부 질문)
1219
+ - 모든 Phase에서 사용자가 수동 수정 가능 ([M] 옵션)
1220
+ - 성공률은 Playwright 비교 결과를 기반으로 객관적으로 측정
1221
+ - \`d2c_workflow_status\`로 언제든 전체 진행 상황 확인 가능`,
901
1222
  },
902
1223
  },
903
1224
  ],
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "syr-d2c-workflow-mcp",
3
- "version": "0.2.0",
3
+ "version": "0.3.1",
4
4
  "description": "Design-to-Code workflow MCP - Transform Figma designs into production-ready components with rules validation",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",