syr-d2c-workflow-mcp 0.3.1 → 0.4.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.
package/README.md CHANGED
@@ -115,14 +115,16 @@ AI가 다음 키워드를 감지하면 이 MCP를 사용합니다:
115
115
  }
116
116
  ```
117
117
 
118
- ### `d2c_compare_with_design`
119
- Figma 디자인과 렌더링 결과를 비교 분석합니다.
118
+ ### `d2c_log_step`
119
+ 워크플로우 진행 상황을 실시간으로 출력합니다.
120
120
 
121
121
  ```typescript
122
122
  {
123
- designDescription: string; // 원본 디자인 설명
124
- renderedDescription: string; // 렌더링 결과 설명
125
- differences?: string[]; // 발견된 차이점
123
+ step: number; // 현재 단계 번호 (1-6)
124
+ stepName: string; // 단계 이름
125
+ status: "start" | "done" | "error";
126
+ message?: string; // 추가 메시지
127
+ iteration?: number; // 반복 횟수
126
128
  }
127
129
  ```
128
130
 
@@ -288,6 +290,207 @@ sequenceDiagram
288
290
  - **[M]** 수동 수정 - 사용자가 직접 코드 수정 후 재비교
289
291
  - **[S]** 중단 - 워크플로우 종료
290
292
 
293
+ ## OpenSpec 규칙 통합
294
+
295
+ v0.4.0부터 사용자 프로젝트의 OpenSpec 규칙을 자동으로 탐지하고 워크플로우에 적용합니다.
296
+
297
+ ### OpenSpec 규칙 구조
298
+
299
+ ```
300
+ your-project/
301
+ ├── openspec/
302
+ │ └── specs/
303
+ │ ├── figma-standard/ ← Figma 변환 규칙
304
+ │ │ └── spec.md
305
+ │ ├── design-rules/ ← 디자인 규칙
306
+ │ │ └── spec.md
307
+ │ └── custom-rules/ ← 커스텀 규칙
308
+ │ └── spec.md
309
+ └── src/
310
+ ```
311
+
312
+ ### 탐지 경로
313
+
314
+ 다음 경로에서 OpenSpec 규칙을 자동으로 탐지합니다:
315
+
316
+ 1. `./openspec/specs/*/spec.md`
317
+ 2. `./.cursor/openspec/specs/*/spec.md`
318
+ 3. `./docs/openspec/specs/*/spec.md`
319
+
320
+ ### OpenSpec 도구
321
+
322
+ #### `d2c_load_openspec_rules`
323
+ 프로젝트의 OpenSpec 규칙을 탐지하고 로드합니다.
324
+
325
+ ```typescript
326
+ {
327
+ forceReload?: boolean; // 캐시 무시하고 다시 로드
328
+ specNames?: string[]; // 특정 spec만 필터링
329
+ }
330
+ ```
331
+
332
+ **반환값 예시:**
333
+ ```
334
+ 📋 OpenSpec 규칙 로드 결과
335
+
336
+ ## 발견된 규칙 (2개)
337
+
338
+ ### figma-standard
339
+ - 경로: `openspec/specs/figma-standard/spec.md`
340
+ - Requirements (3개):
341
+ - 컴포넌트 네이밍 규칙 (2개 시나리오)
342
+ - Props 인터페이스 정의 (1개 시나리오)
343
+ - 접근성 속성 (2개 시나리오)
344
+
345
+ ### design-rules
346
+ - 경로: `openspec/specs/design-rules/spec.md`
347
+ - Requirements (2개):
348
+ - 색상 시스템 (1개 시나리오)
349
+ - 타이포그래피 (1개 시나리오)
350
+ ```
351
+
352
+ #### `d2c_get_workflow_tasks`
353
+ 현재 Phase에 맞는 체크리스트를 반환합니다.
354
+
355
+ ```typescript
356
+ {
357
+ phase: 1 | 2 | 3; // 현재 Phase
358
+ completedTasks?: string[]; // 완료된 task ID 목록
359
+ includeRules?: boolean; // 적용 규칙 목록 포함
360
+ }
361
+ ```
362
+
363
+ **반환값 예시:**
364
+ ```markdown
365
+ ## Phase 1: Figma MCP 추출 (목표 60%)
366
+
367
+ ### 진행률: 33% (2/6)
368
+ ███░░░░░░░
369
+
370
+ ### Tasks
371
+ - [x] 1.1 Figma 디자인 컨텍스트 가져오기
372
+ - [x] 1.2 Figma MCP로 코드 추출
373
+ - [ ] 1.3 Playwright 렌더링
374
+ - [ ] 1.4 스크린샷 비교 (toHaveScreenshot)
375
+ - [ ] 1.5 d2c_phase1_compare 호출
376
+ - [ ] 1.6 HITL 확인
377
+
378
+ ### 적용 규칙
379
+ - **figma-standard**: 컴포넌트 네이밍 규칙, Props 인터페이스 정의, 접근성 속성
380
+ - **design-rules**: 색상 시스템, 타이포그래피
381
+ ```
382
+
383
+ #### `d2c_validate_against_spec`
384
+ 생성된 코드가 OpenSpec 규칙을 준수하는지 검증합니다.
385
+
386
+ ```typescript
387
+ {
388
+ code: string; // 검증할 코드
389
+ specName?: string; // 특정 spec만 검증
390
+ componentName?: string; // 컴포넌트 이름
391
+ }
392
+ ```
393
+
394
+ **반환값 예시:**
395
+ ```
396
+ 📋 OpenSpec 규칙 검증 결과
397
+
398
+ ## 요약
399
+ - 통과: 3개 ✅
400
+ - 실패: 1개 ❌
401
+ - 경고: 1개 ⚠️
402
+ - 준수율: 60%
403
+
404
+ ██████░░░░ 60%
405
+
406
+ ## 상세 결과
407
+
408
+ ✅ **컴포넌트 네이밍 규칙** (default)
409
+ ButtonPrimary은(는) PascalCase 준수
410
+
411
+ ✅ **Props 인터페이스 정의** (default)
412
+ TypeScript Props 인터페이스 정의됨
413
+
414
+ ❌ **색상 시스템** (design-rules)
415
+ 검증 필요: 디자인 시스템 색상 사용
416
+
417
+ ## 수정 필요 항목
418
+ - 색상 시스템: 디자인 시스템 색상 사용
419
+ ```
420
+
421
+ ### OpenSpec 워크플로우 통합 다이어그램
422
+
423
+ ```mermaid
424
+ flowchart TD
425
+ Start[워크플로우 시작] --> LoadRules[d2c_load_openspec_rules]
426
+ LoadRules --> CheckRules{규칙 발견?}
427
+
428
+ CheckRules -->|Yes| ApplyRules[규칙 적용]
429
+ CheckRules -->|No| DefaultRules[기본 규칙 사용]
430
+
431
+ ApplyRules --> Phase1
432
+ DefaultRules --> Phase1
433
+
434
+ subgraph Phase1 [Phase 1]
435
+ P1_Tasks[d2c_get_workflow_tasks - phase:1]
436
+ P1_Work[Figma MCP 추출]
437
+ P1_Validate[d2c_validate_against_spec]
438
+ P1_Compare[d2c_phase1_compare]
439
+
440
+ P1_Tasks --> P1_Work --> P1_Validate --> P1_Compare
441
+ end
442
+
443
+ subgraph Phase2 [Phase 2]
444
+ P2_Tasks[d2c_get_workflow_tasks - phase:2]
445
+ P2_Work[LLM 이미지 Diff 수정]
446
+ P2_Validate[d2c_validate_against_spec]
447
+ P2_Compare[d2c_phase2_image_diff]
448
+
449
+ P2_Tasks --> P2_Work --> P2_Validate --> P2_Compare
450
+ end
451
+
452
+ subgraph Phase3 [Phase 3]
453
+ P3_Tasks[d2c_get_workflow_tasks - phase:3]
454
+ P3_Work[LLM DOM 비교 수정]
455
+ P3_Validate[d2c_validate_against_spec - 최종]
456
+ P3_Compare[d2c_phase3_dom_compare]
457
+
458
+ P3_Tasks --> P3_Work --> P3_Validate --> P3_Compare
459
+ end
460
+
461
+ Phase1 --> Phase2 --> Phase3 --> Done[완료]
462
+ ```
463
+
464
+ ### OpenSpec 규칙 예시
465
+
466
+ `openspec/specs/figma-standard/spec.md`:
467
+
468
+ ```markdown
469
+ # Capability: Figma 변환 표준
470
+
471
+ ## ADDED Requirements
472
+
473
+ ### Requirement: 컴포넌트 네이밍 규칙
474
+
475
+ 컴포넌트 이름은 PascalCase를 따라야 합니다(SHALL).
476
+
477
+ #### Scenario: PascalCase 검증
478
+
479
+ - **GIVEN** Figma에서 추출한 컴포넌트가 있을 때
480
+ - **WHEN** 컴포넌트 이름을 생성하면
481
+ - **THEN** PascalCase 형식이어야 한다 (예: ButtonPrimary)
482
+
483
+ ### Requirement: Props 인터페이스 정의
484
+
485
+ 모든 컴포넌트는 TypeScript Props 인터페이스를 정의해야 합니다(SHALL).
486
+
487
+ #### Scenario: Props 인터페이스 존재
488
+
489
+ - **GIVEN** React 컴포넌트가 생성될 때
490
+ - **WHEN** Props를 받는 경우
491
+ - **THEN** interface ComponentNameProps {} 형태로 정의한다
492
+ ```
493
+
291
494
  ### Phase별 도구
292
495
 
293
496
  #### `d2c_phase1_compare`
package/dist/index.js CHANGED
@@ -5,10 +5,126 @@ import { CallToolRequestSchema, ListToolsRequestSchema, ListPromptsRequestSchema
5
5
  import { z } from "zod";
6
6
  import { glob } from "glob";
7
7
  import * as fs from "fs/promises";
8
+ import * as path from "path";
8
9
  // 환경 변수에서 설정 읽기
9
10
  const RULES_PATHS = process.env.RULES_PATHS?.split(",").map((p) => p.trim()) || [];
10
11
  const RULES_GLOB = process.env.RULES_GLOB || "";
11
12
  const CONFIG_PATH = process.env.D2C_CONFIG_PATH || "";
13
+ const PROJECT_ROOT = process.env.D2C_PROJECT_ROOT || process.cwd();
14
+ // OpenSpec 규칙 탐지 경로
15
+ const OPENSPEC_SEARCH_PATHS = [
16
+ "openspec/specs/*/spec.md",
17
+ ".cursor/openspec/specs/*/spec.md",
18
+ "docs/openspec/specs/*/spec.md",
19
+ ];
20
+ // OpenSpec 규칙 캐시
21
+ let cachedOpenSpecRules = null;
22
+ // OpenSpec spec.md 파싱
23
+ async function parseOpenSpecFile(filePath) {
24
+ try {
25
+ const content = await fs.readFile(filePath, "utf-8");
26
+ const specName = path.basename(path.dirname(filePath));
27
+ const requirements = [];
28
+ // Requirement 섹션 파싱
29
+ const reqRegex = /### Requirement: (.+?)\n\n([\s\S]*?)(?=### Requirement:|---|\n## |$)/g;
30
+ let reqMatch;
31
+ while ((reqMatch = reqRegex.exec(content)) !== null) {
32
+ const reqName = reqMatch[1].trim();
33
+ const reqContent = reqMatch[2];
34
+ // Scenario 파싱
35
+ const scenarios = [];
36
+ const scenarioRegex = /#### Scenario: (.+?)\n\n([\s\S]*?)(?=#### Scenario:|### Requirement:|---|\n## |$)/g;
37
+ let scenarioMatch;
38
+ while ((scenarioMatch = scenarioRegex.exec(reqContent)) !== null) {
39
+ const scenarioName = scenarioMatch[1].trim();
40
+ const scenarioContent = scenarioMatch[2];
41
+ const givenMatch = scenarioContent.match(/- \*\*GIVEN\*\* (.+)/);
42
+ const whenMatch = scenarioContent.match(/- \*\*WHEN\*\* (.+)/);
43
+ const thenMatch = scenarioContent.match(/- \*\*THEN\*\* (.+)/);
44
+ scenarios.push({
45
+ name: scenarioName,
46
+ given: givenMatch?.[1] || "",
47
+ when: whenMatch?.[1] || "",
48
+ then: thenMatch?.[1] || "",
49
+ });
50
+ }
51
+ // 설명 추출 (첫 번째 문단)
52
+ const descMatch = reqContent.match(/^(.+?)(?:\n\n|$)/);
53
+ requirements.push({
54
+ name: reqName,
55
+ description: descMatch?.[1]?.trim() || "",
56
+ scenarios,
57
+ });
58
+ }
59
+ return {
60
+ specName,
61
+ filePath,
62
+ requirements,
63
+ };
64
+ }
65
+ catch (e) {
66
+ console.error(`Failed to parse OpenSpec file: ${filePath}`, e);
67
+ return null;
68
+ }
69
+ }
70
+ // OpenSpec 규칙 탐지 및 로드
71
+ async function loadOpenSpecRules(forceReload = false) {
72
+ if (cachedOpenSpecRules && !forceReload) {
73
+ return cachedOpenSpecRules;
74
+ }
75
+ const rules = [];
76
+ for (const searchPath of OPENSPEC_SEARCH_PATHS) {
77
+ const fullPattern = path.join(PROJECT_ROOT, searchPath);
78
+ const files = await glob(fullPattern);
79
+ for (const file of files) {
80
+ const rule = await parseOpenSpecFile(file);
81
+ if (rule) {
82
+ rules.push(rule);
83
+ }
84
+ }
85
+ }
86
+ cachedOpenSpecRules = rules;
87
+ return rules;
88
+ }
89
+ // Phase별 Tasks 정의
90
+ const PHASE_TASKS = {
91
+ 1: {
92
+ name: "Phase 1: Figma MCP 추출",
93
+ target: 60,
94
+ tasks: [
95
+ { id: "1.1", content: "Figma 디자인 컨텍스트 가져오기" },
96
+ { id: "1.2", content: "Figma MCP로 코드 추출" },
97
+ { id: "1.3", content: "Playwright 렌더링" },
98
+ { id: "1.4", content: "스크린샷 비교 (toHaveScreenshot)" },
99
+ { id: "1.5", content: "d2c_phase1_compare 호출" },
100
+ { id: "1.6", content: "HITL 확인" },
101
+ ],
102
+ },
103
+ 2: {
104
+ name: "Phase 2: LLM 이미지 Diff",
105
+ target: 70,
106
+ tasks: [
107
+ { id: "2.1", content: "Playwright 이미지 diff 분석" },
108
+ { id: "2.2", content: "diff 영역 식별" },
109
+ { id: "2.3", content: "LLM이 코드 수정" },
110
+ { id: "2.4", content: "렌더링 후 스크린샷 비교" },
111
+ { id: "2.5", content: "d2c_phase2_image_diff 호출" },
112
+ { id: "2.6", content: "HITL 확인" },
113
+ ],
114
+ },
115
+ 3: {
116
+ name: "Phase 3: LLM DOM 비교",
117
+ target: 90,
118
+ tasks: [
119
+ { id: "3.1", content: "Playwright DOM 스냅샷 추출" },
120
+ { id: "3.2", content: "DOM 구조 비교" },
121
+ { id: "3.3", content: "LLM이 DOM 기반 수정" },
122
+ { id: "3.4", content: "렌더링 후 DOM 비교" },
123
+ { id: "3.5", content: "d2c_phase3_dom_compare 호출" },
124
+ { id: "3.6", content: "HITL 확인" },
125
+ ],
126
+ },
127
+ };
12
128
  // 서비스 식별자 - AI가 이 키워드를 감지하면 이 MCP를 사용
13
129
  const SERVICE_IDENTIFIERS = `
14
130
  🎯 **서비스 식별자**: 다음 키워드가 포함되면 이 MCP를 사용하세요:
@@ -104,7 +220,7 @@ const DEFAULT_RULES = `
104
220
  // MCP 서버 생성
105
221
  const server = new Server({
106
222
  name: "syr-d2c-workflow-mcp",
107
- version: "0.3.1",
223
+ version: "0.4.0",
108
224
  }, {
109
225
  capabilities: {
110
226
  tools: {},
@@ -418,6 +534,97 @@ ${SERVICE_IDENTIFIERS}
418
534
  required: ["currentPhase"],
419
535
  },
420
536
  },
537
+ // ============ OpenSpec 통합 도구들 ============
538
+ // OpenSpec 규칙 로드
539
+ {
540
+ name: "d2c_load_openspec_rules",
541
+ description: `사용자 프로젝트의 OpenSpec 규칙을 자동으로 탐지하고 로드합니다.
542
+ ${SERVICE_IDENTIFIERS}
543
+
544
+ 📋 **탐지 경로**:
545
+ - ./openspec/specs/*/spec.md
546
+ - ./.cursor/openspec/specs/*/spec.md
547
+ - ./docs/openspec/specs/*/spec.md
548
+
549
+ 🔍 **반환 정보**:
550
+ - 발견된 spec 이름 및 경로
551
+ - 각 spec의 Requirements 목록
552
+ - 각 Requirement의 Scenarios`,
553
+ inputSchema: {
554
+ type: "object",
555
+ properties: {
556
+ forceReload: {
557
+ type: "boolean",
558
+ description: "캐시 무시하고 다시 로드 (기본: false)",
559
+ },
560
+ specNames: {
561
+ type: "array",
562
+ items: { type: "string" },
563
+ description: "특정 spec만 필터링 (예: ['figma-standard', 'design-rules'])",
564
+ },
565
+ },
566
+ },
567
+ },
568
+ // 워크플로우 Tasks 체크리스트
569
+ {
570
+ name: "d2c_get_workflow_tasks",
571
+ description: `현재 Phase에 맞는 tasks.md 형식 체크리스트를 반환합니다.
572
+ ${SERVICE_IDENTIFIERS}
573
+
574
+ 📋 **체크리스트 포함 내용**:
575
+ - Phase 이름 및 목표 성공률
576
+ - 세부 Task 목록 (완료 상태 표시)
577
+ - 적용될 OpenSpec 규칙 목록`,
578
+ inputSchema: {
579
+ type: "object",
580
+ properties: {
581
+ phase: {
582
+ type: "number",
583
+ enum: [1, 2, 3],
584
+ description: "현재 Phase (1, 2, 3)",
585
+ },
586
+ completedTasks: {
587
+ type: "array",
588
+ items: { type: "string" },
589
+ description: "완료된 task ID 목록 (예: ['1.1', '1.2'])",
590
+ },
591
+ includeRules: {
592
+ type: "boolean",
593
+ description: "적용 규칙 목록 포함 (기본: true)",
594
+ },
595
+ },
596
+ required: ["phase"],
597
+ },
598
+ },
599
+ // OpenSpec 규칙 기반 검증
600
+ {
601
+ name: "d2c_validate_against_spec",
602
+ description: `생성된 코드가 OpenSpec 규칙을 준수하는지 검증합니다.
603
+ ${SERVICE_IDENTIFIERS}
604
+
605
+ 🔍 **검증 내용**:
606
+ - 각 Requirement별 pass/fail/warn 상태
607
+ - 위반 시 구체적인 메시지
608
+ - 수정 가이드 제공`,
609
+ inputSchema: {
610
+ type: "object",
611
+ properties: {
612
+ code: {
613
+ type: "string",
614
+ description: "검증할 코드",
615
+ },
616
+ specName: {
617
+ type: "string",
618
+ description: "검증에 사용할 spec 이름 (없으면 모든 spec 적용)",
619
+ },
620
+ componentName: {
621
+ type: "string",
622
+ description: "컴포넌트 이름",
623
+ },
624
+ },
625
+ required: ["code"],
626
+ },
627
+ },
421
628
  // get_component_template - 템플릿 생성
422
629
  {
423
630
  name: "d2c_get_component_template",
@@ -958,6 +1165,277 @@ ${input.currentPhase === 1 ? " ↑ 현재" : input.currentPhase === 2 ? "
958
1165
  ],
959
1166
  };
960
1167
  }
1168
+ // ============ OpenSpec 통합 핸들러 ============
1169
+ case "d2c_load_openspec_rules": {
1170
+ const input = z
1171
+ .object({
1172
+ forceReload: z.boolean().optional().default(false),
1173
+ specNames: z.array(z.string()).optional(),
1174
+ })
1175
+ .parse(args);
1176
+ const rules = await loadOpenSpecRules(input.forceReload);
1177
+ let filteredRules = rules;
1178
+ if (input.specNames?.length) {
1179
+ filteredRules = rules.filter(r => input.specNames.includes(r.specName));
1180
+ }
1181
+ if (filteredRules.length === 0) {
1182
+ return {
1183
+ content: [
1184
+ {
1185
+ type: "text",
1186
+ text: `📋 **OpenSpec 규칙 로드 결과**
1187
+
1188
+ ## 발견된 규칙
1189
+ 없음
1190
+
1191
+ ## 탐지 경로
1192
+ ${OPENSPEC_SEARCH_PATHS.map(p => `- ${path.join(PROJECT_ROOT, p)}`).join("\n")}
1193
+
1194
+ ## 대안
1195
+ - 환경변수 RULES_PATHS로 규칙 파일 지정
1196
+ - \`d2c_get_design_rules\`로 기본 규칙 사용
1197
+
1198
+ 💡 프로젝트에 OpenSpec 규칙을 추가하려면:
1199
+ \`\`\`
1200
+ mkdir -p openspec/specs/figma-standard
1201
+ touch openspec/specs/figma-standard/spec.md
1202
+ \`\`\``,
1203
+ },
1204
+ ],
1205
+ };
1206
+ }
1207
+ const rulesText = filteredRules.map(rule => {
1208
+ const reqList = rule.requirements.map(req => {
1209
+ const scenarioCount = req.scenarios.length;
1210
+ return ` - ${req.name} (${scenarioCount}개 시나리오)`;
1211
+ }).join("\n");
1212
+ return `### ${rule.specName}
1213
+ - 경로: \`${rule.filePath}\`
1214
+ - Requirements (${rule.requirements.length}개):
1215
+ ${reqList}`;
1216
+ }).join("\n\n");
1217
+ return {
1218
+ content: [
1219
+ {
1220
+ type: "text",
1221
+ text: `📋 **OpenSpec 규칙 로드 결과**
1222
+
1223
+ ## 발견된 규칙 (${filteredRules.length}개)
1224
+
1225
+ ${rulesText}
1226
+
1227
+ ## 사용법
1228
+ 1. \`d2c_get_workflow_tasks\`로 체크리스트에서 규칙 확인
1229
+ 2. \`d2c_validate_against_spec\`로 코드 검증
1230
+ 3. 각 Phase에서 규칙 준수 여부 자동 확인`,
1231
+ },
1232
+ ],
1233
+ };
1234
+ }
1235
+ case "d2c_get_workflow_tasks": {
1236
+ const input = z
1237
+ .object({
1238
+ phase: z.number(),
1239
+ completedTasks: z.array(z.string()).optional().default([]),
1240
+ includeRules: z.boolean().optional().default(true),
1241
+ })
1242
+ .parse(args);
1243
+ const phaseInfo = PHASE_TASKS[input.phase];
1244
+ if (!phaseInfo) {
1245
+ throw new Error(`Invalid phase: ${input.phase}. Must be 1, 2, or 3.`);
1246
+ }
1247
+ // 체크리스트 생성
1248
+ const taskList = phaseInfo.tasks.map(task => {
1249
+ const isCompleted = input.completedTasks.includes(task.id);
1250
+ return `- [${isCompleted ? "x" : " "}] ${task.id} ${task.content}`;
1251
+ }).join("\n");
1252
+ // 완료율 계산
1253
+ const completedCount = phaseInfo.tasks.filter(t => input.completedTasks.includes(t.id)).length;
1254
+ const totalCount = phaseInfo.tasks.length;
1255
+ const progressPercent = Math.round((completedCount / totalCount) * 100);
1256
+ // OpenSpec 규칙 섹션
1257
+ let rulesSection = "";
1258
+ if (input.includeRules) {
1259
+ const rules = await loadOpenSpecRules();
1260
+ if (rules.length > 0) {
1261
+ const rulesList = rules.map(rule => {
1262
+ const keyReqs = rule.requirements.slice(0, 3).map(r => r.name).join(", ");
1263
+ return `- **${rule.specName}**: ${keyReqs}${rule.requirements.length > 3 ? " 외 " + (rule.requirements.length - 3) + "개" : ""}`;
1264
+ }).join("\n");
1265
+ rulesSection = `\n### 적용 규칙\n${rulesList}\n`;
1266
+ }
1267
+ else {
1268
+ rulesSection = `\n### 적용 규칙\n- (없음) 기본 규칙 사용\n`;
1269
+ }
1270
+ }
1271
+ return {
1272
+ content: [
1273
+ {
1274
+ type: "text",
1275
+ text: `## ${phaseInfo.name} (목표 ${phaseInfo.target}%)
1276
+
1277
+ ### 진행률: ${progressPercent}% (${completedCount}/${totalCount})
1278
+ ${"█".repeat(Math.round(progressPercent / 10))}${"░".repeat(10 - Math.round(progressPercent / 10))}
1279
+
1280
+ ### Tasks
1281
+ ${taskList}
1282
+ ${rulesSection}
1283
+ ### 다음 단계
1284
+ ${completedCount === totalCount
1285
+ ? `✅ Phase ${input.phase} 완료! ${input.phase < 3 ? `Phase ${input.phase + 1}로 진행하세요.` : "워크플로우 완료!"}`
1286
+ : `➡️ ${phaseInfo.tasks.find(t => !input.completedTasks.includes(t.id))?.id} ${phaseInfo.tasks.find(t => !input.completedTasks.includes(t.id))?.content} 진행`}`,
1287
+ },
1288
+ ],
1289
+ };
1290
+ }
1291
+ case "d2c_validate_against_spec": {
1292
+ const input = z
1293
+ .object({
1294
+ code: z.string(),
1295
+ specName: z.string().optional(),
1296
+ componentName: z.string().optional(),
1297
+ })
1298
+ .parse(args);
1299
+ const rules = await loadOpenSpecRules();
1300
+ let targetRules = rules;
1301
+ if (input.specName) {
1302
+ targetRules = rules.filter(r => r.specName === input.specName);
1303
+ }
1304
+ const results = [];
1305
+ // 기본 검증 규칙 (항상 적용)
1306
+ const code = input.code;
1307
+ const componentName = input.componentName || "Component";
1308
+ // 1. PascalCase 컴포넌트 네이밍
1309
+ if (componentName && /^[A-Z][a-zA-Z0-9]*$/.test(componentName)) {
1310
+ results.push({
1311
+ specName: "default",
1312
+ requirement: "컴포넌트 네이밍 규칙",
1313
+ status: "pass",
1314
+ message: `${componentName}은(는) PascalCase 준수`,
1315
+ });
1316
+ }
1317
+ else if (componentName) {
1318
+ results.push({
1319
+ specName: "default",
1320
+ requirement: "컴포넌트 네이밍 규칙",
1321
+ status: "fail",
1322
+ message: `${componentName}은(는) PascalCase가 아님. 권장: ${componentName.split(/[-_]/).map(s => s.charAt(0).toUpperCase() + s.slice(1)).join("")}`,
1323
+ });
1324
+ }
1325
+ // 2. Props 인터페이스
1326
+ if (code.includes("interface") && code.includes("Props")) {
1327
+ results.push({
1328
+ specName: "default",
1329
+ requirement: "Props 인터페이스 정의",
1330
+ status: "pass",
1331
+ message: "TypeScript Props 인터페이스 정의됨",
1332
+ });
1333
+ }
1334
+ else if (code.includes(": {") || code.includes("Props")) {
1335
+ results.push({
1336
+ specName: "default",
1337
+ requirement: "Props 인터페이스 정의",
1338
+ status: "warn",
1339
+ message: "Props 타입이 있으나 명시적 인터페이스 권장",
1340
+ });
1341
+ }
1342
+ else {
1343
+ results.push({
1344
+ specName: "default",
1345
+ requirement: "Props 인터페이스 정의",
1346
+ status: "fail",
1347
+ message: "Props 인터페이스가 없음. interface ComponentProps {} 추가 권장",
1348
+ });
1349
+ }
1350
+ // 3. 접근성
1351
+ const a11yPatterns = ["aria-", "role=", "tabIndex", "alt="];
1352
+ const hasA11y = a11yPatterns.some(p => code.includes(p));
1353
+ results.push({
1354
+ specName: "default",
1355
+ requirement: "접근성 속성",
1356
+ status: hasA11y ? "pass" : "warn",
1357
+ message: hasA11y ? "접근성 속성 포함됨" : "aria-*, role 속성 추가 권장",
1358
+ });
1359
+ // OpenSpec 규칙 기반 검증
1360
+ for (const rule of targetRules) {
1361
+ for (const req of rule.requirements) {
1362
+ // 키워드 기반 간단한 검증
1363
+ const keywords = req.name.toLowerCase().split(/\s+/);
1364
+ let matched = false;
1365
+ let status = "warn";
1366
+ // 네이밍 관련
1367
+ if (keywords.some(k => ["naming", "네이밍", "이름"].includes(k))) {
1368
+ if (/^[A-Z][a-zA-Z0-9]*$/.test(componentName || "")) {
1369
+ matched = true;
1370
+ status = "pass";
1371
+ }
1372
+ }
1373
+ // Props 관련
1374
+ if (keywords.some(k => ["props", "인터페이스", "interface"].includes(k))) {
1375
+ if (code.includes("interface") && code.includes("Props")) {
1376
+ matched = true;
1377
+ status = "pass";
1378
+ }
1379
+ }
1380
+ // 접근성 관련
1381
+ if (keywords.some(k => ["접근성", "a11y", "accessibility", "aria"].includes(k))) {
1382
+ if (hasA11y) {
1383
+ matched = true;
1384
+ status = "pass";
1385
+ }
1386
+ }
1387
+ if (!matched) {
1388
+ results.push({
1389
+ specName: rule.specName,
1390
+ requirement: req.name,
1391
+ status: "warn",
1392
+ message: `검증 필요: ${req.description || req.name}`,
1393
+ });
1394
+ }
1395
+ else {
1396
+ results.push({
1397
+ specName: rule.specName,
1398
+ requirement: req.name,
1399
+ status,
1400
+ message: status === "pass" ? "규칙 준수" : "검토 필요",
1401
+ });
1402
+ }
1403
+ }
1404
+ }
1405
+ // 결과 집계
1406
+ const passCount = results.filter(r => r.status === "pass").length;
1407
+ const failCount = results.filter(r => r.status === "fail").length;
1408
+ const warnCount = results.filter(r => r.status === "warn").length;
1409
+ const totalCount = results.length;
1410
+ const passRate = Math.round((passCount / totalCount) * 100);
1411
+ const statusIcon = (s) => s === "pass" ? "✅" : s === "fail" ? "❌" : "⚠️";
1412
+ const resultText = results.map(r => `${statusIcon(r.status)} **${r.requirement}** (${r.specName})\n ${r.message}`).join("\n\n");
1413
+ return {
1414
+ content: [
1415
+ {
1416
+ type: "text",
1417
+ text: `━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1418
+ 📋 **OpenSpec 규칙 검증 결과**
1419
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1420
+
1421
+ ## 요약
1422
+ - 통과: ${passCount}개 ✅
1423
+ - 실패: ${failCount}개 ❌
1424
+ - 경고: ${warnCount}개 ⚠️
1425
+ - **준수율: ${passRate}%**
1426
+
1427
+ ${"█".repeat(Math.round(passRate / 10))}${"░".repeat(10 - Math.round(passRate / 10))} ${passRate}%
1428
+
1429
+ ## 상세 결과
1430
+
1431
+ ${resultText}
1432
+
1433
+ ${failCount > 0 ? `\n## 수정 필요 항목\n${results.filter(r => r.status === "fail").map(r => `- ${r.requirement}: ${r.message}`).join("\n")}` : ""}
1434
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━`,
1435
+ },
1436
+ ],
1437
+ };
1438
+ }
961
1439
  case "d2c_get_component_template": {
962
1440
  const input = z
963
1441
  .object({
@@ -1148,6 +1626,13 @@ server.setRequestHandler(GetPromptRequestSchema, async (request) => {
1148
1626
 
1149
1627
  ---
1150
1628
 
1629
+ ### 🔰 Step 0: OpenSpec 규칙 로드
1630
+ 1. **\`d2c_load_openspec_rules\`** 호출하여 프로젝트 규칙 확인
1631
+ 2. 발견된 규칙(예: figma-standard, design-rules)을 워크플로우에 적용
1632
+ 3. 규칙이 없으면 기본 규칙 사용
1633
+
1634
+ ---
1635
+
1151
1636
  ### Step 1: 사전 검사
1152
1637
  1. \`d2c_log_step(step:1, stepName:"사전 검사", status:"start")\`
1153
1638
  2. \`d2c_preflight_check\` 호출
@@ -1163,46 +1648,52 @@ server.setRequestHandler(GetPromptRequestSchema, async (request) => {
1163
1648
  ---
1164
1649
 
1165
1650
  ### 🔄 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")\`
1651
+ 1. **\`d2c_get_workflow_tasks(phase:1)\`**로 체크리스트 확인
1652
+ 2. \`d2c_log_step(step:3, stepName:"Phase 1", status:"start", iteration:1)\`
1653
+ 3. \`d2c_get_component_template\`로 템플릿 생성
1654
+ 4. **Figma MCP로 코드 추출/수정**
1655
+ 5. \`playwright-mcp.browser_navigate\`로 렌더링
1656
+ 6. \`playwright-mcp.browser_screenshot\`으로 스크린샷
1657
+ 7. **Playwright toHaveScreenshot()으로 비교하여 성공률 계산**
1658
+ 8. **\`d2c_phase1_compare\`** 호출 (successRate, iteration 필수!)
1659
+ 9. **\`d2c_validate_against_spec\`**로 OpenSpec 규칙 검증
1660
+ 10. **HITL 확인**: 사용자 응답에 따라:
1661
+ - [Y] → 60% 미달이면 반복, 달성이면 Phase 2로
1662
+ - [M] 수동 수정 후 재비교
1663
+ - [N] → 현재 상태로 다음 단계
1664
+ 11. \`d2c_log_step(step:3, stepName:"Phase 1", status:"done")\`
1178
1665
 
1179
1666
  ---
1180
1667
 
1181
1668
  ### 🔄 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 확인**: 사용자 응답에 따라:
1669
+ 1. **\`d2c_get_workflow_tasks(phase:2)\`**로 체크리스트 확인
1670
+ 2. \`d2c_log_step(step:4, stepName:"Phase 2", status:"start", iteration:1)\`
1671
+ 3. **Playwright 이미지 diff 분석**
1672
+ 4. diff 결과 기반으로 **LLM이 코드 수정**
1673
+ 5. 렌더링 스크린샷 비교
1674
+ 6. **\`d2c_phase2_image_diff\`** 호출 (successRate, diffAreas 포함!)
1675
+ 7. **\`d2c_validate_against_spec\`**로 OpenSpec 규칙 검증
1676
+ 8. **HITL 확인**: 사용자 응답에 따라:
1188
1677
  - [Y] → 70% 미달이면 LLM 수정 반복, 달성이면 Phase 3로
1189
1678
  - [M] → 수동 수정 후 재비교
1190
1679
  - [N] → 현재 상태로 다음 단계
1191
- 7. \`d2c_log_step(step:4, stepName:"Phase 2", status:"done")\`
1680
+ 9. \`d2c_log_step(step:4, stepName:"Phase 2", status:"done")\`
1192
1681
 
1193
1682
  ---
1194
1683
 
1195
1684
  ### 🔄 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 확인**: 사용자 응답에 따라:
1685
+ 1. **\`d2c_get_workflow_tasks(phase:3)\`**로 체크리스트 확인
1686
+ 2. \`d2c_log_step(step:5, stepName:"Phase 3", status:"start", iteration:1)\`
1687
+ 3. **Playwright DOM 스냅샷 비교**
1688
+ 4. DOM 차이 기반으로 **LLM이 코드 수정**
1689
+ 5. 렌더링 DOM 비교
1690
+ 6. **\`d2c_phase3_dom_compare\`** 호출 (successRate, domDiffs 포함!)
1691
+ 7. **\`d2c_validate_against_spec\`**로 OpenSpec 규칙 최종 검증
1692
+ 8. **HITL 확인**: 사용자 응답에 따라:
1202
1693
  - [Y] → 90% 미달이면 LLM 수정 반복, 달성이면 완료
1203
1694
  - [M] → 수동 수정 후 재비교
1204
1695
  - [N] → 현재 상태로 완료
1205
- 7. \`d2c_log_step(step:5, stepName:"Phase 3", status:"done")\`
1696
+ 9. \`d2c_log_step(step:5, stepName:"Phase 3", status:"done")\`
1206
1697
 
1207
1698
  ---
1208
1699
 
@@ -1215,10 +1706,22 @@ server.setRequestHandler(GetPromptRequestSchema, async (request) => {
1215
1706
  ---
1216
1707
 
1217
1708
  **⚠️ 중요 규칙**:
1709
+ - **워크플로우 시작 시 \`d2c_load_openspec_rules\`로 규칙 로드**
1710
+ - **각 Phase에서 \`d2c_get_workflow_tasks\`로 체크리스트 확인**
1711
+ - **코드 수정 후 \`d2c_validate_against_spec\`로 규칙 검증**
1218
1712
  - 매 Phase마다 **반드시 HITL 확인** (사용자에게 계속 여부 질문)
1219
1713
  - 모든 Phase에서 사용자가 수동 수정 가능 ([M] 옵션)
1220
1714
  - 성공률은 Playwright 비교 결과를 기반으로 객관적으로 측정
1221
- - \`d2c_workflow_status\`로 언제든 전체 진행 상황 확인 가능`,
1715
+ - \`d2c_workflow_status\`로 언제든 전체 진행 상황 확인 가능
1716
+
1717
+ ---
1718
+
1719
+ ### 📋 OpenSpec 도구 사용법
1720
+ | 도구 | 용도 | 호출 시점 |
1721
+ |------|------|----------|
1722
+ | \`d2c_load_openspec_rules\` | 프로젝트 규칙 로드 | 워크플로우 시작 시 |
1723
+ | \`d2c_get_workflow_tasks\` | Phase별 체크리스트 | 각 Phase 시작 시 |
1724
+ | \`d2c_validate_against_spec\` | 규칙 준수 검증 | 코드 수정 후 |`,
1222
1725
  },
1223
1726
  },
1224
1727
  ],
@@ -1290,9 +1793,10 @@ export default Component;
1290
1793
  async function main() {
1291
1794
  const transport = new StdioServerTransport();
1292
1795
  await server.connect(transport);
1293
- console.error("SYR D2C Workflow MCP server running on stdio (v0.1.0)");
1796
+ console.error("SYR D2C Workflow MCP server running on stdio (v0.4.0)");
1294
1797
  console.error(` Rules paths: ${RULES_PATHS.join(", ") || "(none)"}`);
1295
1798
  console.error(` Rules glob: ${RULES_GLOB || "(none)"}`);
1799
+ console.error(` OpenSpec paths: ${OPENSPEC_SEARCH_PATHS.map(p => path.join(PROJECT_ROOT, p)).join(", ")}`);
1296
1800
  }
1297
1801
  main().catch((error) => {
1298
1802
  console.error("Fatal error:", error);
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.3.1",
3
+ "version": "0.4.0",
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",