timelabs 0.1.0 → 0.1.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.
Files changed (138) hide show
  1. package/dist/index.js +30 -20
  2. package/package.json +1 -1
  3. package/skills/web-design/claude-code/SKILL.md +270 -0
  4. package/skills/web-design/claude-code/analyze/analyze-benchmark-rules.md +229 -0
  5. package/skills/web-design/claude-code/analyze/analyze-benchmark.md +302 -0
  6. package/skills/web-design/claude-code/analyze/analyze-mockup.md +572 -0
  7. package/skills/web-design/claude-code/collect/collect-app.md +258 -0
  8. package/skills/web-design/claude-code/collect/collect-desktop.md +231 -0
  9. package/skills/web-design/claude-code/collect/collect-hybrid.md +222 -0
  10. package/skills/web-design/claude-code/collect/collect-style.md +155 -0
  11. package/skills/web-design/claude-code/collect/collect-type.md +42 -0
  12. package/skills/web-design/claude-code/collect/collect-video.md +239 -0
  13. package/skills/web-design/claude-code/collect/collect-web.md +279 -0
  14. package/skills/web-design/claude-code/defs/ai-recommend/01-style-design-recommend.md +64 -0
  15. package/skills/web-design/claude-code/defs/ai-recommend.md +58 -0
  16. package/skills/web-design/claude-code/defs/app-layouts/02-utility.md +54 -0
  17. package/skills/web-design/claude-code/defs/app-layouts/03-social.md +71 -0
  18. package/skills/web-design/claude-code/defs/app-layouts/04-game.md +54 -0
  19. package/skills/web-design/claude-code/defs/app-layouts/05-fintech.md +62 -0
  20. package/skills/web-design/claude-code/defs/app-layouts/06-healthcare.md +66 -0
  21. package/skills/web-design/claude-code/defs/app-layouts/07-ecommerce.md +63 -0
  22. package/skills/web-design/claude-code/defs/app-layouts/08-education.md +88 -0
  23. package/skills/web-design/claude-code/defs/app-layouts/09-creative.md +86 -0
  24. package/skills/web-design/claude-code/defs/app-layouts.md +59 -0
  25. package/skills/web-design/claude-code/defs/app-motions/01-utility.md +51 -0
  26. package/skills/web-design/claude-code/defs/app-motions/02-social.md +55 -0
  27. package/skills/web-design/claude-code/defs/app-motions/03-game.md +52 -0
  28. package/skills/web-design/claude-code/defs/app-motions/04-fintech.md +52 -0
  29. package/skills/web-design/claude-code/defs/app-motions/05-healthcare.md +52 -0
  30. package/skills/web-design/claude-code/defs/app-motions/06-ecommerce.md +55 -0
  31. package/skills/web-design/claude-code/defs/app-motions/07-education.md +54 -0
  32. package/skills/web-design/claude-code/defs/app-motions/08-creative.md +53 -0
  33. package/skills/web-design/claude-code/defs/app-motions/10-intensity-preset-motion.md +12 -0
  34. package/skills/web-design/claude-code/defs/app-motions.md +64 -0
  35. package/skills/web-design/claude-code/defs/component-specs/01-set-component.md +24 -0
  36. package/skills/web-design/claude-code/defs/component-specs/02-features-flow.md +51 -0
  37. package/skills/web-design/claude-code/defs/component-specs/03-system-visual.md +193 -0
  38. package/skills/web-design/claude-code/defs/component-specs/04-interaction-pattern-visual.md +61 -0
  39. package/skills/web-design/claude-code/defs/component-specs/domains/admin.md +55 -0
  40. package/skills/web-design/claude-code/defs/component-specs/domains/dashboard.md +60 -0
  41. package/skills/web-design/claude-code/defs/component-specs/domains/erp.md +68 -0
  42. package/skills/web-design/claude-code/defs/component-specs/domains/saas.md +65 -0
  43. package/skills/web-design/claude-code/defs/component-specs.md +24 -0
  44. package/skills/web-design/claude-code/defs/design-guide-sections.md +37 -0
  45. package/skills/web-design/claude-code/defs/desktop-layouts/01-utility.md +69 -0
  46. package/skills/web-design/claude-code/defs/desktop-layouts/02-data.md +71 -0
  47. package/skills/web-design/claude-code/defs/desktop-layouts/03-creative.md +73 -0
  48. package/skills/web-design/claude-code/defs/desktop-layouts/04-communication.md +71 -0
  49. package/skills/web-design/claude-code/defs/desktop-layouts/05-game.md +73 -0
  50. package/skills/web-design/claude-code/defs/desktop-layouts/06-business.md +74 -0
  51. package/skills/web-design/claude-code/defs/desktop-layouts.md +49 -0
  52. package/skills/web-design/claude-code/defs/desktop-motions/01-utility.md +56 -0
  53. package/skills/web-design/claude-code/defs/desktop-motions/02-data.md +60 -0
  54. package/skills/web-design/claude-code/defs/desktop-motions/03-creative.md +60 -0
  55. package/skills/web-design/claude-code/defs/desktop-motions/04-communication.md +57 -0
  56. package/skills/web-design/claude-code/defs/desktop-motions/05-game.md +55 -0
  57. package/skills/web-design/claude-code/defs/desktop-motions/06-business.md +52 -0
  58. package/skills/web-design/claude-code/defs/desktop-motions.md +75 -0
  59. package/skills/web-design/claude-code/defs/hybrid-layouts/01-web_mobile.md +81 -0
  60. package/skills/web-design/claude-code/defs/hybrid-layouts/02-web_desktop.md +78 -0
  61. package/skills/web-design/claude-code/defs/hybrid-layouts/03-mobile_desktop.md +79 -0
  62. package/skills/web-design/claude-code/defs/hybrid-layouts/04-all.md +81 -0
  63. package/skills/web-design/claude-code/defs/hybrid-layouts.md +49 -0
  64. package/skills/web-design/claude-code/defs/hybrid-motions/01-web_mobile.md +69 -0
  65. package/skills/web-design/claude-code/defs/hybrid-motions/02-web_desktop.md +69 -0
  66. package/skills/web-design/claude-code/defs/hybrid-motions/03-mobile_desktop.md +74 -0
  67. package/skills/web-design/claude-code/defs/hybrid-motions/04-all.md +96 -0
  68. package/skills/web-design/claude-code/defs/hybrid-motions/07-intensity-preset-motion.md +16 -0
  69. package/skills/web-design/claude-code/defs/hybrid-motions.md +65 -0
  70. package/skills/web-design/claude-code/defs/ia-patterns/01-management-dashboard.md +37 -0
  71. package/skills/web-design/claude-code/defs/ia-patterns/05-video.md +33 -0
  72. package/skills/web-design/claude-code/defs/ia-patterns/06-video_saas-saas.md +37 -0
  73. package/skills/web-design/claude-code/defs/ia-patterns.md +85 -0
  74. package/skills/web-design/claude-code/defs/icon-mappings/04-mapping-design-system.md +25 -0
  75. package/skills/web-design/claude-code/defs/icon-mappings.md +49 -0
  76. package/skills/web-design/claude-code/defs/icon-usage.md +56 -0
  77. package/skills/web-design/claude-code/defs/illustration-guide.md +44 -0
  78. package/skills/web-design/claude-code/defs/image-strategies/01-landing.md +76 -0
  79. package/skills/web-design/claude-code/defs/image-strategies/02-dashboard.md +51 -0
  80. package/skills/web-design/claude-code/defs/image-strategies/03-ecommerce.md +47 -0
  81. package/skills/web-design/claude-code/defs/image-strategies/04-blog.md +58 -0
  82. package/skills/web-design/claude-code/defs/image-strategies/05-saas.md +56 -0
  83. package/skills/web-design/claude-code/defs/image-strategies/06-portfolio.md +62 -0
  84. package/skills/web-design/claude-code/defs/image-strategies/08-strategy-common-image.md +57 -0
  85. package/skills/web-design/claude-code/defs/image-strategies.md +58 -0
  86. package/skills/web-design/claude-code/defs/seo-guide.md +79 -0
  87. package/skills/web-design/claude-code/defs/styles/02-style-list.md +421 -0
  88. package/skills/web-design/claude-code/defs/styles/03-custom-animation-keyframes.md +39 -0
  89. package/skills/web-design/claude-code/defs/styles.md +50 -0
  90. package/skills/web-design/claude-code/defs/tokens/01-token-format.md +75 -0
  91. package/skills/web-design/claude-code/defs/tokens/02-token-scope.md +251 -0
  92. package/skills/web-design/claude-code/defs/tokens.md +24 -0
  93. package/skills/web-design/claude-code/defs/video-compositions/01-composition-single.md +66 -0
  94. package/skills/web-design/claude-code/defs/video-compositions/02-composition-multi.md +66 -0
  95. package/skills/web-design/claude-code/defs/video-compositions/03-composition-parametric.md +81 -0
  96. package/skills/web-design/claude-code/defs/video-compositions.md +37 -0
  97. package/skills/web-design/claude-code/defs/video-motions/01-animation-basic.md +49 -0
  98. package/skills/web-design/claude-code/defs/video-motions/02-animation.md +52 -0
  99. package/skills/web-design/claude-code/defs/video-motions/03-reference.md +17 -0
  100. package/skills/web-design/claude-code/defs/video-motions/05-pattern-composition.md +61 -0
  101. package/skills/web-design/claude-code/defs/video-motions/06-transition-effects.md +49 -0
  102. package/skills/web-design/claude-code/defs/video-motions/07-audio-sync.md +29 -0
  103. package/skills/web-design/claude-code/defs/video-motions.md +55 -0
  104. package/skills/web-design/claude-code/defs/web-layouts/01-landing.md +101 -0
  105. package/skills/web-design/claude-code/defs/web-layouts/02-dashboard.md +85 -0
  106. package/skills/web-design/claude-code/defs/web-layouts/03-ecommerce.md +73 -0
  107. package/skills/web-design/claude-code/defs/web-layouts/04-blog.md +69 -0
  108. package/skills/web-design/claude-code/defs/web-layouts/05-saas.md +83 -0
  109. package/skills/web-design/claude-code/defs/web-layouts/06-portfolio.md +62 -0
  110. package/skills/web-design/claude-code/defs/web-layouts.md +38 -0
  111. package/skills/web-design/claude-code/defs/web-motions/01-landing.md +91 -0
  112. package/skills/web-design/claude-code/defs/web-motions/02-dashboard.md +55 -0
  113. package/skills/web-design/claude-code/defs/web-motions/03-ecommerce.md +52 -0
  114. package/skills/web-design/claude-code/defs/web-motions/04-blog.md +57 -0
  115. package/skills/web-design/claude-code/defs/web-motions/05-saas.md +49 -0
  116. package/skills/web-design/claude-code/defs/web-motions/06-portfolio.md +73 -0
  117. package/skills/web-design/claude-code/defs/web-motions/08-intensity-preset-motion.md +14 -0
  118. package/skills/web-design/claude-code/defs/web-motions.md +55 -0
  119. package/skills/web-design/claude-code/gen/gen-design-guide/01-project-overview.md +304 -0
  120. package/skills/web-design/claude-code/gen/gen-design-guide-interaction/01-interaction-motion.md +129 -0
  121. package/skills/web-design/claude-code/gen/gen-design-guide-interaction/04-project-video.md +69 -0
  122. package/skills/web-design/claude-code/gen/gen-design-guide-interaction.md +45 -0
  123. package/skills/web-design/claude-code/gen/gen-design-guide.md +43 -0
  124. package/skills/web-design/claude-code/gen/gen-tokens/01-generate-process.md +318 -0
  125. package/skills/web-design/claude-code/gen/gen-tokens/02-structure-output-file.md +31 -0
  126. package/skills/web-design/claude-code/gen/gen-tokens/03-connect-frontend.md +150 -0
  127. package/skills/web-design/claude-code/gen/gen-tokens.md +54 -0
  128. package/skills/web-design/claude-code/gen/gen-video.md +73 -0
  129. package/skills/web-design/claude-code/verify/verify-components.md +52 -0
  130. package/skills/web-design/claude-code/verify/verify-motions.md +74 -0
  131. package/skills/web-design/claude-code/verify/verify-pipeline.md +69 -0
  132. package/skills/web-design/claude-code/verify/verify-report.md +75 -0
  133. package/skills/web-design/claude-code/verify/verify-responsive.md +49 -0
  134. package/skills/web-design/claude-code/verify/verify-tokens.md +84 -0
  135. package/skills/test-skill/claude-code/SKILL.md +0 -7
  136. package/skills/test-skill/cursor/test-skill.md +0 -7
  137. package/skills/test-skill/openclaw/SKILL.md +0 -13
  138. package/skills/test-skill/skill.json +0 -6
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@ import { Command as Command3 } from "commander";
6
6
  // src/commands/install.ts
7
7
  import { Command } from "commander";
8
8
  import chalk from "chalk";
9
+ import { checkbox as checkbox2 } from "@inquirer/prompts";
9
10
 
10
11
  // src/registry/registry.ts
11
12
  import { fileURLToPath } from "url";
@@ -14,11 +15,11 @@ import { dirname, resolve } from "path";
14
15
  // src/registry/skills.json
15
16
  var skills_default = [
16
17
  {
17
- name: "test-skill",
18
- displayName: "Test Skill",
19
- description: "A sample skill for testing the installer",
18
+ name: "web-design",
19
+ displayName: "Web Design System",
20
+ description: "\uC6F9/\uC571/\uB370\uC2A4\uD06C\uD1B1/\uD558\uC774\uBE0C\uB9AC\uB4DC/\uBE44\uB514\uC624 \uB514\uC790\uC778 \uC2DC\uC2A4\uD15C - \uC218\uC9D1, \uBD84\uC11D, \uD1A0\uD070/\uAC00\uC774\uB4DC \uC0DD\uC131, \uAC80\uC99D",
20
21
  version: "1.0.0",
21
- targets: ["claude-code", "cursor", "openclaw"]
22
+ targets: ["claude-code"]
22
23
  }
23
24
  ];
24
25
 
@@ -128,33 +129,42 @@ var allInstallers = [
128
129
  new CursorInstaller(),
129
130
  new OpenClawInstaller()
130
131
  ];
131
- var installCommand = new Command("install").description("Interactively select and install skills").option(
132
- "-t, --target <target>",
133
- "Target AI tool (claude-code, cursor, openclaw, all)",
134
- "all"
135
- ).action(async (opts) => {
136
- const { target } = opts;
137
- const skills = filterByTarget(loadSkills(), target);
132
+ async function selectTargets() {
133
+ const selected = await checkbox2({
134
+ message: "Select AI tools to install to:",
135
+ choices: allInstallers.map((i) => ({
136
+ name: i.name,
137
+ value: i.targetKey,
138
+ checked: i.isAvailable()
139
+ }))
140
+ });
141
+ return allInstallers.filter((i) => selected.includes(i.targetKey));
142
+ }
143
+ var installCommand = new Command("install").description("Interactively select and install skills").action(async () => {
144
+ const skills = loadSkills();
138
145
  if (skills.length === 0) {
139
- console.log(chalk.yellow("No skills found for the specified target."));
146
+ console.log(chalk.yellow("No skills available."));
140
147
  return;
141
148
  }
142
- const selected = await selectSkills(skills);
143
- if (selected.length === 0) {
149
+ const selectedSkills = await selectSkills(skills);
150
+ if (selectedSkills.length === 0) {
144
151
  console.log(chalk.yellow("No skills selected."));
145
152
  return;
146
153
  }
154
+ const selectedInstallers = await selectTargets();
155
+ if (selectedInstallers.length === 0) {
156
+ console.log(chalk.yellow("No AI tools selected."));
157
+ return;
158
+ }
147
159
  const skillsDir = getSkillsDir();
148
- const installers = target === "all" ? allInstallers : allInstallers.filter((i) => i.targetKey === target);
149
160
  let installed = 0;
150
161
  let skipped = 0;
151
- for (const skill of selected) {
152
- for (const installer of installers) {
153
- if (!skill.targets.includes(installer.targetKey)) continue;
154
- if (!installer.isAvailable()) {
162
+ for (const skill of selectedSkills) {
163
+ for (const installer of selectedInstallers) {
164
+ if (!skill.targets.includes(installer.targetKey)) {
155
165
  console.log(
156
166
  chalk.dim(
157
- ` \u23ED ${installer.name} not detected, skipping "${skill.displayName}"`
167
+ ` \u23ED "${skill.displayName}" has no files for ${installer.name}, skipping`
158
168
  )
159
169
  );
160
170
  skipped++;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "timelabs",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Install AI skill packages for Claude Code, Cursor, and OpenClaw",
5
5
  "type": "module",
6
6
  "bin": {
@@ -0,0 +1,270 @@
1
+ ---
2
+ name: web-design
3
+ description: 웹/앱/데스크톱/하이브리드/비디오 디자인 시스템 - 스타일/레이아웃/모션 수집, 벤치마킹, 목업 분석, 디자인 토큰/가이드 생성, 디자인 적용 자동 검증. "/web-design", "웹 디자인", "디자인 토큰", "디자인 가이드" 명령에 반응합니다.
4
+ ---
5
+
6
+ # /web-design — 웹 디자인 시스템
7
+
8
+ ## Trigger
9
+
10
+ ```
11
+ /web-design # 메뉴 표시
12
+ ```
13
+
14
+ ## 역할
15
+
16
+ 디자인 리서치 → 수집 → 토큰/가이드 생성 → 적용 검증까지 **연속 파이프라인**으로 연결된 디자인 시스템 스킬입니다.
17
+ 웹, 모바일 앱, 데스크톱, 하이브리드(크로스플랫폼), 비디오 프로젝트를 모두 지원합니다.
18
+
19
+ ---
20
+
21
+ ## UX: `/web-design` 입력 시 메뉴 표시
22
+
23
+ ```
24
+ 🎨 /web-design 에 오신 것을 환영합니다!
25
+
26
+ 무엇을 하시겠습니까?
27
+
28
+ [1] 전체 파이프라인 (분석 → 수집 → 생성 → 검증)
29
+ [2] 벤치마킹 (사이트 비교 분석)
30
+ [3] 목업 분석 (단일 파일/URL 분석)
31
+ [4] 디자인 수집 → 토큰/가이드 생성
32
+ [5] 디자인 적용 검증
33
+ [6] 레퍼런스 조회 (스타일/레이아웃/모션)
34
+ [7] 파이프라인 상태 확인
35
+
36
+ 번호를 선택하세요:
37
+ ```
38
+
39
+ ## 인자별 실행
40
+
41
+ `/web-design` 실행 후 메뉴에서 선택하거나, 사용자가 직접 인자를 지정하면 해당 모듈로 바로 진입합니다.
42
+
43
+ | 인자 | 설명 | 실행 모듈 |
44
+ |------|------|----------|
45
+ | (없음) | 메뉴 표시 | — |
46
+ | `all` | 전체 파이프라인 바로 시작 | Phase 1→2→3→4 |
47
+ | `benchmark <URL...>` | 멀티사이트 벤치마킹 | analyze/analyze-benchmark.md |
48
+ | `analyze <파일/URL>` | 단일 목업/사이트 분석 | analyze/analyze-mockup.md |
49
+ | `generate` | 디자인 수집 → 생성 | collect/ → gen/ |
50
+ | `tokens` | 토큰 생성만 (스타일+테마 지정 후 바로) | collect-style.md → gen-tokens.md |
51
+ | `verify` | 디자인 적용 검증 | verify/ |
52
+ | `browse <카테고리>` | 레퍼런스 조회 | defs/ |
53
+ | `status` | 파이프라인 상태 확인 | verify/verify-pipeline.md |
54
+
55
+ ---
56
+
57
+ ## 연속 파이프라인
58
+
59
+ 전체 흐름이 끊김 없이 연결됩니다. 각 단계의 출력이 다음 단계의 입력으로 자동 전달됩니다.
60
+
61
+ ```
62
+ Phase 1: 리서치 (선택)
63
+ ├─ benchmark <URL...> → docs/benchmarking/recommended-tokens.json
64
+ └─ analyze <파일/URL> → .design/{site}/analysis.json + design-tokens.css
65
+
66
+ ▼ (분석 결과를 design-context에 저장)
67
+
68
+ Phase 2: 수집 (대화형)
69
+ ├─ collect/collect-type.md → config.project_type
70
+ ├─ collect/collect-web.md → 웹 프로젝트 레이아웃/모션
71
+ ├─ collect/collect-app.md → 모바일 앱 레이아웃/모션
72
+ ├─ collect/collect-desktop.md → 데스크톱 앱 레이아웃/모션
73
+ ├─ collect/collect-hybrid.md → 하이브리드(크로스플랫폼) 레이아웃/모션
74
+ ├─ collect/collect-video.md → 비디오 구성/모션
75
+ └─ collect/collect-style.md → config.style, config.theme, config.token_scope
76
+
77
+ │ ★ 연결 포인트: 분석 결과가 있으면 자동 반영
78
+ │ - recommended-tokens.json → 스타일 추천 기본값
79
+ │ - analysis.json의 colors → 토큰 생성 시 참조 색상
80
+ │ - analysis.json의 detected layout → 레이아웃 추천
81
+
82
+
83
+ Phase 3: 생성 (자동)
84
+ ├─ gen/gen-tokens.md → design/tokens/ (variables.css, visual.css 등)
85
+ ├─ gen/gen-tokens/03-connect-frontend → globals.css, tailwind.config 수정
86
+ ├─ gen/gen-design-guide.md → docs/design/web-design-guide.md (Section 1-6)
87
+ ├─ gen/gen-design-guide-interaction.md → Section 7-8 (모션/인터랙션)
88
+ └─ gen/gen-video.md → 비디오 디자인 생성 (구성/모션/오디오 싱크)
89
+
90
+
91
+
92
+ Phase 4: 검증 (자동, generate 완료 직후 실행)
93
+ ├─ verify/verify-tokens.md → 토큰 사용 현황
94
+ ├─ verify/verify-motions.md → 모션/애니메이션 적용 현황
95
+ ├─ verify/verify-components.md → 컴포넌트 구현 현황
96
+ ├─ verify/verify-responsive.md → 반응형/이미지 현황
97
+ └─ verify/verify-report.md → 종합 리포트 + project-context.json 업데이트
98
+ ```
99
+
100
+ ## 데이터 연결 메커니즘
101
+
102
+ | 출발 | 저장 위치 | 도착 | 사용 방식 |
103
+ |------|---------|------|---------|
104
+ | benchmark 결과 | `docs/benchmarking/recommended-tokens.json` | collect-style | 스타일 추천 기본값 |
105
+ | benchmark 결과 | `docs/benchmarking/report.md` | collect-style | 감지된 스타일 코드 매핑 |
106
+ | mockup 분석 | `.design/{site}/analysis.json` | collect-style | 색상/레이아웃/타이포 기본값 |
107
+ | mockup 분석 | `.design/{site}/design-tokens.css` | gen-tokens | 참조 토큰 (있으면 머지) |
108
+ | collect 결과 | `config` 객체 (메모리) | gen-tokens, gen-design-guide | 전체 디자인 설정 |
109
+ | gen-tokens 결과 | `design/tokens/` | verify-tokens | 검증 대상 |
110
+ | gen-design-guide 결과 | `docs/design/` | verify-motions, verify-components | 검증 대상 |
111
+ | gen-video 결과 | `docs/design/video/` | verify-motions | 비디오 모션 검증 대상 |
112
+
113
+ ## 독립 실행
114
+
115
+ 각 모듈은 독립적으로도 실행 가능합니다:
116
+
117
+ - `/web-design benchmark` → 벤치마킹만 실행 후 종료 (나중에 generate에서 자동 픽업)
118
+ - `/web-design analyze` → 분석만 실행 후 종료
119
+ - `/web-design verify` → 이미 생성된 토큰/가이드에 대해 검증만 실행
120
+ - `/web-design generate` → 분석 결과가 있으면 자동 참조, 없으면 수동 입력
121
+
122
+ ---
123
+
124
+ ## 메뉴별 실행 로직
125
+
126
+ ### [1] 전체 파이프라인 (`all`)
127
+
128
+ ```
129
+ AskUserQuestion:
130
+ "벤치마킹할 참고 사이트 URL이 있나요? (없으면 Enter)"
131
+ → URL 있으면 Phase 1 (benchmark) 먼저 실행
132
+ → 없으면 Phase 2 (collect)부터 시작
133
+
134
+ Phase 2:
135
+ 1. Read collect/collect-type.md → 프로젝트 유형 질문
136
+ 2. Read collect/collect-{type}.md → 유형별 상세 질문
137
+ (web/app/desktop/hybrid/video 중 선택된 유형)
138
+ 3. Read collect/collect-style.md → 스타일/테마/토큰 범위
139
+
140
+ Phase 3:
141
+ 4. Read gen/gen-tokens.md → 토큰 생성
142
+ 5. Read gen/gen-design-guide.md → 디자인 가이드 생성
143
+ 6. Read gen/gen-design-guide-interaction.md → 인터랙션 섹션
144
+ 6-1. (video 유형) Read gen/gen-video.md → 비디오 디자인 생성
145
+
146
+ Phase 4:
147
+ 7. Read verify/verify-tokens.md → 토큰 검증
148
+ 8. Read verify/verify-motions.md → 모션 검증
149
+ 9. Read verify/verify-components.md → 컴포넌트 검증
150
+ 10. Read verify/verify-responsive.md → 반응형 검증
151
+ 11. Read verify/verify-report.md → 종합 리포트
152
+ ```
153
+
154
+ ### [2] 벤치마킹 (`benchmark`)
155
+
156
+ ```
157
+ Read analyze/analyze-benchmark.md
158
+ → 워크플로우 실행
159
+ ```
160
+
161
+ ### [3] 목업 분석 (`analyze`)
162
+
163
+ ```
164
+ Read analyze/analyze-mockup.md
165
+ → 워크플로우 실행
166
+ ```
167
+
168
+ ### [4] 디자인 수집 → 생성 (`generate`)
169
+
170
+ ```
171
+ Phase 2 + Phase 3 실행
172
+ (Phase 1 결과가 있으면 자동 참조)
173
+ ```
174
+
175
+ ### [5] 디자인 적용 검증 (`verify`)
176
+
177
+ ```
178
+ Phase 4 실행 (verify/ 전체)
179
+ ```
180
+
181
+ ### [6] 레퍼런스 조회 (`browse`)
182
+
183
+ ```
184
+ AskUserQuestion:
185
+ "어떤 레퍼런스를 조회하시겠습니까?
186
+
187
+ ── 스타일/토큰 ──
188
+ [1] 스타일 (26종) → Read defs/styles.md
189
+ [2] 토큰 포맷 → Read defs/tokens.md
190
+ [3] AI 스타일 추천 → Read defs/ai-recommend.md
191
+
192
+ ── 레이아웃 ──
193
+ [4] 웹 레이아웃 (6종) → Read defs/web-layouts.md
194
+ [5] 앱 레이아웃 (8종) → Read defs/app-layouts.md
195
+ [6] 데스크톱 레이아웃 (6종) → Read defs/desktop-layouts.md
196
+ [7] 하이브리드 레이아웃 (4종) → Read defs/hybrid-layouts.md
197
+
198
+ ── 모션 ──
199
+ [8] 웹 모션 (7종) → Read defs/web-motions.md
200
+ [9] 앱 모션 (8종) → Read defs/app-motions.md
201
+ [10] 데스크톱 모션 (6종) → Read defs/desktop-motions.md
202
+ [11] 하이브리드 모션 (4종) → Read defs/hybrid-motions.md
203
+
204
+ ── 비디오 ──
205
+ [12] 비디오 구성 → Read defs/video-compositions.md
206
+ [13] 비디오 모션 → Read defs/video-motions.md
207
+
208
+ ── 컴포넌트/패턴 ──
209
+ [14] 컴포넌트 스펙 → Read defs/component-specs.md
210
+ [15] IA 패턴 → Read defs/ia-patterns.md
211
+ [16] 이미지 전략 → Read defs/image-strategies.md
212
+ [17] 아이콘 매핑 → Read defs/icon-mappings.md
213
+ [18] 아이콘 사용 가이드 → Read defs/icon-usage.md
214
+
215
+ ── 가이드 ──
216
+ [19] 디자인 가이드 섹션 → Read defs/design-guide-sections.md
217
+ [20] 일러스트레이션 가이드 → Read defs/illustration-guide.md
218
+ [21] SEO 가이드 → Read defs/seo-guide.md"
219
+ ```
220
+
221
+ ### [7] 파이프라인 상태 (`status`)
222
+
223
+ ```
224
+ Read verify/verify-pipeline.md
225
+ → 상태 확인 실행
226
+ ```
227
+
228
+ ---
229
+
230
+ ## 공유 컨텍스트
231
+
232
+ ### 시작 시 읽기
233
+
234
+ ```
235
+ 1. Read .claude/project-context.json
236
+ 2. 파일이 있으면:
237
+ - design.style → 이전 스타일 설정
238
+ - design.theme → 이전 테마
239
+ - design.token_format → 토큰 형식
240
+ - benchmarking → 벤치마킹 결과 유무
241
+ 3. 파일이 없으면 → context = {}, 정상 진행
242
+ ```
243
+
244
+ ### 완료 시 쓰기
245
+
246
+ ```json
247
+ {
248
+ "last_updated": "{현재 시간}",
249
+ "updated_by": "/web-design",
250
+ "design": {
251
+ "style": "{선택된 스타일}",
252
+ "theme": "{선택된 테마}",
253
+ "token_format": "{토큰 형식}",
254
+ "token_scope": ["{선택된 범위}"],
255
+ "layout_pattern": "{레이아웃}",
256
+ "motion_pattern": "{모션}",
257
+ "verify": { "...검증 결과..." }
258
+ }
259
+ }
260
+ ```
261
+
262
+ ---
263
+
264
+ ## Related Skills
265
+
266
+ | 스킬 | 관계 |
267
+ |------|------|
268
+ | `design-linker` | 디자인 목업 ↔ 태스크 연결 (별도 스킬) |
269
+ | `benchmarking` | 원본 벤치마킹 스킬 (독립 유지, web-design에 통합본 포함) |
270
+ | `shared` | 공유 컨텍스트 규칙 참조 |
@@ -0,0 +1,229 @@
1
+ # 벤치마킹 분석 규칙
2
+
3
+ > Dependencies: 없음 (독립 참조 데이터)
4
+ > 참조원: `analyze/analyze-benchmark.md`
5
+
6
+ ---
7
+
8
+ ## 1. 분석 관점 (7가지)
9
+
10
+ | # | 관점 | 분석 내용 | 데이터 소스 |
11
+ |---|------|----------|-----------|
12
+ | 1 | 레이아웃 | 그리드 컬럼 수, 콘텐츠 최대 너비, 여백 비율, 섹션 구분 방식 | DOM 구조 + CSS |
13
+ | 2 | 컬러 | 주요 색상, 각 색상의 역할(배경/텍스트/액센트/CTA), 색상 수, 명암 대비 | CSS 추출 |
14
+ | 3 | 타이포그래피 | 서체 종류, 크기 단계(타입 스케일), 굵기 변화, 줄 높이 | CSS 추출 |
15
+ | 4 | 간격 체계 | 사용된 간격 값, 기본 단위 추정(4px/8px 기반 여부), 섹션 간 간격 | CSS 추출 |
16
+ | 5 | 컴포넌트 | 버튼 스타일, 카드 구조, 입력 필드, 내비게이션, 푸터 패턴 | DOM + CSS + 스크린샷 |
17
+ | 6 | 시각 스타일 | 디자인 스타일 판별 (미니멀/글래스모피즘 등) | 스크린샷 + CSS |
18
+ | 7 | 반응형 | 브레이크포인트, 모바일 메뉴 방식, 레이아웃 변화 패턴 | 데스크톱/모바일 비교 |
19
+
20
+ ---
21
+
22
+ ## 2. 스타일 판별 기준
23
+
24
+ CSS 추출 값으로 디자인 스타일을 판별할 때 사용하는 기준입니다.
25
+
26
+ | 스타일 | 판별 단서 |
27
+ |-------|---------|
28
+ | 미니멀리즘 | 색상 수 5개 이하, 여백 비율 높음, 장식 요소 없음 |
29
+ | 플랫 디자인 | box-shadow 없음, 그라데이션 없음, 단색 배경 |
30
+ | 머티리얼 디자인 | 단계적 box-shadow, elevation 체계, 8dp 그리드 |
31
+ | 뉴모피즘 | 배경과 동일 색상 계열의 밝은/어두운 box-shadow 쌍 |
32
+ | 글래스모피즘 | backdrop-filter: blur, 반투명 배경(rgba alpha < 1), 미세한 보더 |
33
+ | 브루탈리즘 | 강한 보더, 시스템 폰트, 비대칭 레이아웃, 높은 색상 대비 |
34
+ | 다크 모드 | 배경색 명도 < 30%, 텍스트색 명도 > 80% |
35
+ | 카드 기반 | 동일 구조의 반복 컴포넌트 3개 이상, border-radius + shadow 조합 |
36
+ | 벤토 박스 | CSS Grid 사용, 다양한 크기의 격자 블록, gap 일정 |
37
+
38
+ ---
39
+
40
+ ## 3. CSS 추출 항목
41
+
42
+ | 카테고리 | 추출 항목 |
43
+ |---------|---------|
44
+ | 컬러 | 배경색, 텍스트색, 링크색, 버튼색, 보더색 (모든 고유 색상) |
45
+ | 타이포그래피 | font-family, font-size, font-weight, line-height, letter-spacing |
46
+ | 간격 | padding, margin (모든 고유 값) |
47
+ | 라운딩 | border-radius (모든 고유 값) |
48
+ | 그림자 | box-shadow (모든 고유 값) |
49
+ | 레이아웃 | max-width, display, grid-template-columns, gap |
50
+ | 보더 | border-width, border-style, border-color |
51
+ | 트랜지션 | transition, animation 속성 |
52
+
53
+ ---
54
+
55
+ ## 4. 데이터 정제 규칙
56
+
57
+ ### 4-1. 색상 정제
58
+
59
+ - `rgba(0, 0, 0, 0)` 등 투명색 제거
60
+ - `rgb()` / `rgba()` → hex 변환 후 중복 병합
61
+ - 사용 빈도(count)를 함께 기록하여 주요 값과 예외 값 구분
62
+ - 역할 추정: 빈도 최상위 = 배경, 2순위 = 텍스트, 3순위 = 액센트/CTA
63
+
64
+ ### 4-2. 타이포그래피 정제
65
+
66
+ - font-size를 px 숫자로 정렬하여 타입 스케일 비율 추정
67
+ - 일반적 비율: 1.2 (Minor Third), 1.25 (Major Third), 1.333 (Perfect Fourth)
68
+ - font-weight 빈도 기반 주요 웨이트 선별
69
+
70
+ ### 4-3. 간격 정제
71
+
72
+ - padding/margin 값을 px 숫자로 정렬
73
+ - 기본 단위 추정: 4px 기반인지, 8px 기반인지 판별 (최소 공약수 분석)
74
+ - 0px, auto 값 제외
75
+
76
+ ### 4-4. CSS 변수 추출
77
+
78
+ `:root` 또는 `html` 셀렉터에서 `--` 접두사 변수를 추출하면 해당 사이트의 디자인 토큰 체계를 직접 파악할 수 있습니다.
79
+
80
+ ---
81
+
82
+ ## 5. 비교 매트릭스 템플릿
83
+
84
+ 여러 사이트를 비교할 때 사용하는 표 구조입니다.
85
+
86
+ ```
87
+ 비교 항목 | 사이트 A | 사이트 B | 사이트 C | 추천 값
88
+ -----------------|-----------|-----------|-----------|----------
89
+ Primary Color | #3B82F6 | #6366F1 | #2563EB | (분석 후 결정)
90
+ Font Family | Inter | Pretendard| Noto Sans | ...
91
+ Base Font Size | 16px | 15px | 16px | ...
92
+ Type Scale Ratio | 1.25 | 1.333 | 1.25 | ...
93
+ Spacing Unit | 8px | 4px | 8px | ...
94
+ Max Width | 1200px | 1280px | 1440px | ...
95
+ Border Radius | 8px | 12px | 6px | ...
96
+ Shadow Style | subtle | none | medium | ...
97
+ Grid Columns | 12 | 12 | 12 | ...
98
+ Design Style | 미니멀 | 글래스모피즘 | 플랫 | ...
99
+ ```
100
+
101
+ ---
102
+
103
+ ## 6. 스타일 조합 가이드
104
+
105
+ ### 6-1. 궁합이 좋은 조합
106
+
107
+ | 조합 | 적합한 서비스 유형 |
108
+ |------|----------------|
109
+ | 미니멀리즘 + 타이포그래피 중심 | 패션, 포트폴리오, 에이전시 |
110
+ | 플랫 디자인 + 일러스트레이션 | SaaS, 스타트업, 랜딩 페이지 |
111
+ | 다크 모드 + 글래스모피즘 | 대시보드, 음악/미디어 앱 |
112
+ | 카드 기반 + 머티리얼 디자인 | 뉴스, 커머스, 관리자 화면 |
113
+ | 벤토 박스 + 미니멀리즘 | 제품 소개, 기능 안내 |
114
+ | 미니멀리즘 + 3D/인터랙티브 | 테크 회사, 제품 쇼케이스 |
115
+ | 오가닉 + 일러스트레이션 | 교육, 건강, 키즈 서비스 |
116
+
117
+ ### 6-2. 피해야 할 조합
118
+
119
+ | 조합 | 이유 |
120
+ |------|------|
121
+ | 미니멀리즘 + 브루탈리즘 | "비우기"와 "거칠게 채우기" 철학 충돌 |
122
+ | 뉴모피즘 + 글래스모피즘 | 두 표면 효과가 동시에 경쟁하여 산만함 |
123
+ | 레트로 + 머티리얼 디자인 | 시대적 톤 불일치 |
124
+
125
+ ### 6-3. 조합 원칙
126
+
127
+ - 주 스타일 70% + 보조 스타일 30% 비율 유지
128
+ - 하나는 구조(레이아웃), 다른 하나는 표면(비주얼)으로 역할 분리
129
+ - 조합하려는 스타일 간 공통 속성(색감, 여백, 단순함 등)이 있어야 함
130
+ - 모바일에서는 주 스타일 위주로 단순하게, 데스크톱에서 보조 스타일 추가
131
+
132
+ ---
133
+
134
+ ## 7. 토큰 도출 방법
135
+
136
+ 벤치마킹 결과를 디자인 토큰으로 변환할 때의 규칙입니다.
137
+
138
+ | 토큰 카테고리 | 도출 방법 |
139
+ |-------------|---------|
140
+ | 컬러 | 벤치마킹 사이트들의 공통 색상 역할(Primary, Neutral, Semantic)을 파악하고, 사용자의 브랜드 색상을 대입하여 동일한 역할 체계로 확장 |
141
+ | 타이포그래피 | 가장 많이 사용된 타입 스케일 비율(보통 1.2~1.333)을 채택하고, 사용자가 원하는 서체에 적용 |
142
+ | 간격 | 벤치마킹 사이트들의 기본 단위(4px or 8px)를 확인하고, 다수결로 채택 |
143
+ | 라운딩 | 서비스 성격에 맞게 선택 (딱딱한 느낌 = 작은 값, 부드러운 느낌 = 큰 값) |
144
+ | 그림자 | 벤치마킹 사이트 중 가장 적절한 엘리베이션 체계를 참고하여 3~4단계 정의 |
145
+
146
+ ---
147
+
148
+ ## 8. 보고서 구조
149
+
150
+ ### 8-1. 사이트별 분석 JSON
151
+
152
+ ```json
153
+ {
154
+ "url": "https://example.com",
155
+ "capturedAt": "ISO 8601 타임스탬프",
156
+ "screenshots": {
157
+ "desktop": "screenshots/{site}-desktop.png",
158
+ "mobile": "screenshots/{site}-mobile.png",
159
+ "sections": ["screenshots/{site}-header.png"]
160
+ },
161
+ "designTokens": {
162
+ "colors": { "primary": [], "neutral": [], "background": [] },
163
+ "typography": { "families": [], "scale": [], "weights": [], "lineHeights": [] },
164
+ "spacing": { "baseUnit": "8px", "values": [] },
165
+ "borderRadius": [],
166
+ "shadows": [],
167
+ "maxWidth": "1200px"
168
+ },
169
+ "structure": {
170
+ "semanticTree": "...",
171
+ "componentPatterns": "...",
172
+ "gridSystem": "...",
173
+ "accessibilityScore": "..."
174
+ },
175
+ "styleAnalysis": {
176
+ "detectedStyles": ["미니멀리즘", "카드 기반"],
177
+ "rationale": "판별 근거 텍스트"
178
+ }
179
+ }
180
+ ```
181
+
182
+ ### 8-2. 비교 보고서 구조
183
+
184
+ ```markdown
185
+ # 벤치마킹 비교 보고서
186
+
187
+ ## 분석 대상
188
+ - 사이트 A: [URL] - [한줄 설명]
189
+
190
+ ## 비교 매트릭스
191
+ (§5 비교 매트릭스 템플릿 적용)
192
+
193
+ ## 공통 패턴
194
+ (모든 사이트가 공유하는 디자인 패턴)
195
+
196
+ ## 차별화 요소
197
+ (각 사이트만의 독특한 접근)
198
+
199
+ ## 추천 디자인 토큰
200
+ (§7 토큰 도출 방법 적용, CSS Custom Properties 형태)
201
+
202
+ ## 추천 디자인 스타일 조합
203
+ (§6 스타일 조합 가이드 참조)
204
+
205
+ ## 참고 스크린샷
206
+ (캡처 이미지 참조)
207
+ ```
208
+
209
+ ---
210
+
211
+ ## 9. 에러 처리
212
+
213
+ | 상황 | 대응 방법 |
214
+ |------|---------|
215
+ | 사이트 접속 불가 (404, 500) | 에러 기록 후 해당 URL 건너뛰기, 사용자에게 알림 |
216
+ | 로그인 필요 페이지 | 공개 접근 가능한 페이지만 분석 가능함을 안내 |
217
+ | SPA | `waitUntil: 'networkidle'` + 추가 대기 시간 적용 |
218
+ | CORS로 외부 CSS 접근 불가 | computed style 기반 분석으로 대체 |
219
+ | 무한 스크롤 | 최대 스크롤 횟수 제한 (10회) |
220
+ | 캡차/봇 차단 | 사용자에게 자동 분석 불가 안내 |
221
+
222
+ ---
223
+
224
+ ## 10. 주의사항
225
+
226
+ - **저작권**: 벤치마킹은 참고를 위한 것이며, 디자인을 그대로 복제하는 것은 저작권 문제가 될 수 있음을 사용자에게 안내
227
+ - **성능**: 사이트당 30초~1분 소요 예상 (전체 5개 시 약 5분)
228
+ - **동적 콘텐츠**: A/B 테스트, 지역별 콘텐츠 차이 등은 캡처 시점에 따라 달라질 수 있음
229
+ - **네트워크 필수**: 외부 사이트 접속이 필요하므로 네트워크 활성화 필수