create-ax-project 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/README.md +374 -0
  2. package/bin/create.js +193 -0
  3. package/package.json +38 -0
  4. package/template/.claude/CLAUDE.md +7 -0
  5. package/template/.claude/commands/CLAUDE.md +0 -0
  6. package/template/.claude/commands/benchmark.md +103 -0
  7. package/template/.claude/commands/brainstorm.md +67 -0
  8. package/template/.claude/commands/checkpoint.md +93 -0
  9. package/template/.claude/commands/codex.md +107 -0
  10. package/template/.claude/commands/collaborate.md +85 -0
  11. package/template/.claude/commands/context.md +154 -0
  12. package/template/.claude/commands/deploy.md +102 -0
  13. package/template/.claude/commands/fork.md +142 -0
  14. package/template/.claude/commands/gemini.md +84 -0
  15. package/template/.claude/commands/handoff.md +80 -0
  16. package/template/.claude/commands/implement.md +82 -0
  17. package/template/.claude/commands/init-project.md +49 -0
  18. package/template/.claude/commands/next.md +125 -0
  19. package/template/.claude/commands/planning.md +69 -0
  20. package/template/.claude/commands/qa.md +81 -0
  21. package/template/.claude/commands/refactor.md +95 -0
  22. package/template/.claude/commands/research.md +60 -0
  23. package/template/.claude/commands/restore.md +113 -0
  24. package/template/.claude/commands/run-stage.md +78 -0
  25. package/template/.claude/commands/stages.md +109 -0
  26. package/template/.claude/commands/status.md +73 -0
  27. package/template/.claude/commands/tasks.md +80 -0
  28. package/template/.claude/commands/test.md +93 -0
  29. package/template/.claude/commands/ui-ux.md +61 -0
  30. package/template/.claude/commands/validate.md +174 -0
  31. package/template/.claude/hooks/CLAUDE.md +0 -0
  32. package/template/.claude/hooks/ai-selector.sh +223 -0
  33. package/template/.claude/hooks/auto-checkpoint.sh +187 -0
  34. package/template/.claude/hooks/output-validator.sh +289 -0
  35. package/template/.claude/hooks/post-stage.sh +123 -0
  36. package/template/.claude/hooks/pre-stage.sh +186 -0
  37. package/template/.claude/hooks/session-start.sh +90 -0
  38. package/template/.claude/hooks/statusline.sh +115 -0
  39. package/template/.claude/hooks/stop.sh +104 -0
  40. package/template/.claude/settings.json +149 -0
  41. package/template/.claude/skills/ai-collaboration/CLAUDE.md +0 -0
  42. package/template/.claude/skills/ai-collaboration/README.md +61 -0
  43. package/template/.claude/skills/ai-collaboration/debate.md +148 -0
  44. package/template/.claude/skills/ai-collaboration/parallel.md +96 -0
  45. package/template/.claude/skills/ai-collaboration/prompts/CLAUDE.md +107 -0
  46. package/template/.claude/skills/auto-checkpoint/CLAUDE.md +0 -0
  47. package/template/.claude/skills/auto-checkpoint/README.md +77 -0
  48. package/template/.claude/skills/auto-checkpoint/prompts/CLAUDE.md +113 -0
  49. package/template/.claude/skills/auto-checkpoint/rollback.md +152 -0
  50. package/template/.claude/skills/auto-checkpoint/trigger.md +122 -0
  51. package/template/.claude/skills/context-compression/CLAUDE.md +0 -0
  52. package/template/.claude/skills/context-compression/README.md +121 -0
  53. package/template/.claude/skills/context-compression/analyze.md +114 -0
  54. package/template/.claude/skills/context-compression/compress.md +175 -0
  55. package/template/.claude/skills/context-compression/prompts/CLAUDE.md +0 -0
  56. package/template/.claude/skills/context-compression/prompts/compression.md +172 -0
  57. package/template/.claude/skills/output-validator/CLAUDE.md +0 -0
  58. package/template/.claude/skills/output-validator/README.md +86 -0
  59. package/template/.claude/skills/output-validator/prompts/CLAUDE.md +119 -0
  60. package/template/.claude/skills/output-validator/validate.md +182 -0
  61. package/template/.claude/skills/smart-handoff/CLAUDE.md +0 -0
  62. package/template/.claude/skills/smart-handoff/README.md +59 -0
  63. package/template/.claude/skills/smart-handoff/extract.md +76 -0
  64. package/template/.claude/skills/smart-handoff/prompts/CLAUDE.md +86 -0
  65. package/template/.claude/skills/smart-handoff/summarize.md +94 -0
  66. package/template/.claude/skills/stage-transition/CLAUDE.md +0 -0
  67. package/template/.claude/skills/stage-transition/README.md +84 -0
  68. package/template/.claude/skills/stage-transition/handoff-gen.md +160 -0
  69. package/template/.claude/skills/stage-transition/prompts/CLAUDE.md +0 -0
  70. package/template/.claude/skills/stage-transition/prompts/transition.md +145 -0
  71. package/template/.claude/skills/stage-transition/validate.md +108 -0
  72. package/template/CLAUDE.md +528 -0
  73. package/template/config/CLAUDE.md +0 -0
  74. package/template/config/ai_benchmarking.yaml +184 -0
  75. package/template/config/ai_collaboration.yaml +159 -0
  76. package/template/config/ai_logging.yaml +129 -0
  77. package/template/config/auto_checkpoint.yaml +189 -0
  78. package/template/config/context.yaml +78 -0
  79. package/template/config/git.yaml +161 -0
  80. package/template/config/handoff_intelligence.yaml +229 -0
  81. package/template/config/implementation.yaml.template +181 -0
  82. package/template/config/mcp_fallbacks.yaml +252 -0
  83. package/template/config/memory_integration.yaml +200 -0
  84. package/template/config/model_enforcement.yaml +141 -0
  85. package/template/config/models.yaml +242 -0
  86. package/template/config/output_validation.yaml +352 -0
  87. package/template/config/pipeline.yaml +357 -0
  88. package/template/config/pipeline_forking.yaml +236 -0
  89. package/template/config/qa_logging.yaml +166 -0
  90. package/template/config/smart_rollback.yaml +209 -0
  91. package/template/config/stage_personas.yaml +354 -0
  92. package/template/config/workflow.yaml +54 -0
  93. package/template/scripts/CLAUDE.md +0 -0
  94. package/template/scripts/ai-benchmark.sh +272 -0
  95. package/template/scripts/codex-wrapper.sh +97 -0
  96. package/template/scripts/context-manager.sh +528 -0
  97. package/template/scripts/create-checkpoint.sh +116 -0
  98. package/template/scripts/gemini-wrapper.sh +96 -0
  99. package/template/scripts/init-project.sh +109 -0
  100. package/template/scripts/list-stages.sh +245 -0
  101. package/template/scripts/next-stage.sh +228 -0
  102. package/template/scripts/output-validate.sh +12 -0
  103. package/template/scripts/pipeline-fork.sh +293 -0
  104. package/template/scripts/pre-run-check.sh +361 -0
  105. package/template/scripts/restore-checkpoint.sh +247 -0
  106. package/template/scripts/run-stage.sh +139 -0
  107. package/template/scripts/show-status.sh +185 -0
  108. package/template/scripts/smart-handoff.sh +254 -0
  109. package/template/stages/01-brainstorm/CLAUDE.md +103 -0
  110. package/template/stages/01-brainstorm/HANDOFF.md +110 -0
  111. package/template/stages/01-brainstorm/HANDOFF.md.template +112 -0
  112. package/template/stages/01-brainstorm/README.md +97 -0
  113. package/template/stages/01-brainstorm/config.yaml +92 -0
  114. package/template/stages/01-brainstorm/inputs/.gitkeep +0 -0
  115. package/template/stages/01-brainstorm/inputs/CLAUDE.md +0 -0
  116. package/template/stages/01-brainstorm/inputs/project_brief.md +40 -0
  117. package/template/stages/01-brainstorm/outputs/.gitkeep +0 -0
  118. package/template/stages/01-brainstorm/outputs/CLAUDE.md +0 -0
  119. package/template/stages/01-brainstorm/outputs/ideas.md +159 -0
  120. package/template/stages/01-brainstorm/outputs/requirements_analysis.md +222 -0
  121. package/template/stages/01-brainstorm/prompts/CLAUDE.md +0 -0
  122. package/template/stages/01-brainstorm/prompts/collaboration.md +46 -0
  123. package/template/stages/01-brainstorm/prompts/ideation.md +62 -0
  124. package/template/stages/01-brainstorm/prompts/persona.md +73 -0
  125. package/template/stages/01-brainstorm/prompts/requirements.md +73 -0
  126. package/template/stages/01-brainstorm/prompts/validation.md +50 -0
  127. package/template/stages/01-brainstorm/templates/CLAUDE.md +0 -0
  128. package/template/stages/01-brainstorm/templates/ideas.md +91 -0
  129. package/template/stages/01-brainstorm/templates/requirements_analysis.md +129 -0
  130. package/template/stages/02-research/CLAUDE.md +101 -0
  131. package/template/stages/02-research/HANDOFF.md +158 -0
  132. package/template/stages/02-research/HANDOFF.md.template +102 -0
  133. package/template/stages/02-research/config.yaml +68 -0
  134. package/template/stages/02-research/inputs/.gitkeep +0 -0
  135. package/template/stages/02-research/outputs/.gitkeep +0 -0
  136. package/template/stages/02-research/outputs/CLAUDE.md +0 -0
  137. package/template/stages/02-research/outputs/feasibility_report.md +176 -0
  138. package/template/stages/02-research/outputs/tech_research.md +403 -0
  139. package/template/stages/02-research/prompts/CLAUDE.md +0 -0
  140. package/template/stages/02-research/prompts/collaboration.md +51 -0
  141. package/template/stages/02-research/prompts/feasibility.md +73 -0
  142. package/template/stages/02-research/prompts/market_analysis.md +58 -0
  143. package/template/stages/02-research/prompts/tech_stack.md +60 -0
  144. package/template/stages/02-research/prompts/validation.md +51 -0
  145. package/template/stages/02-research/templates/.gitkeep +0 -0
  146. package/template/stages/03-planning/CLAUDE.md +98 -0
  147. package/template/stages/03-planning/HANDOFF.md +168 -0
  148. package/template/stages/03-planning/HANDOFF.md.template +91 -0
  149. package/template/stages/03-planning/config.yaml +64 -0
  150. package/template/stages/03-planning/inputs/.gitkeep +0 -0
  151. package/template/stages/03-planning/outputs/.gitkeep +0 -0
  152. package/template/stages/03-planning/outputs/CLAUDE.md +0 -0
  153. package/template/stages/03-planning/outputs/architecture.md +400 -0
  154. package/template/stages/03-planning/outputs/implementation.yaml +209 -0
  155. package/template/stages/03-planning/outputs/project_plan.md +204 -0
  156. package/template/stages/03-planning/outputs/tech_stack.md +176 -0
  157. package/template/stages/03-planning/prompts/CLAUDE.md +0 -0
  158. package/template/stages/03-planning/prompts/architecture.md +62 -0
  159. package/template/stages/03-planning/prompts/collaboration.md +57 -0
  160. package/template/stages/03-planning/prompts/validation.md +59 -0
  161. package/template/stages/03-planning/templates/.gitkeep +0 -0
  162. package/template/stages/04-ui-ux/CLAUDE.md +88 -0
  163. package/template/stages/04-ui-ux/HANDOFF.md +165 -0
  164. package/template/stages/04-ui-ux/HANDOFF.md.template +92 -0
  165. package/template/stages/04-ui-ux/config.yaml +57 -0
  166. package/template/stages/04-ui-ux/inputs/.gitkeep +0 -0
  167. package/template/stages/04-ui-ux/outputs/.gitkeep +0 -0
  168. package/template/stages/04-ui-ux/outputs/CLAUDE.md +0 -0
  169. package/template/stages/04-ui-ux/outputs/design_system.md +449 -0
  170. package/template/stages/04-ui-ux/outputs/user_flows.md +321 -0
  171. package/template/stages/04-ui-ux/outputs/wireframes.md +241 -0
  172. package/template/stages/04-ui-ux/prompts/.gitkeep +0 -0
  173. package/template/stages/04-ui-ux/prompts/CLAUDE.md +0 -0
  174. package/template/stages/04-ui-ux/prompts/collaboration.md +56 -0
  175. package/template/stages/04-ui-ux/prompts/validation.md +54 -0
  176. package/template/stages/04-ui-ux/templates/.gitkeep +0 -0
  177. package/template/stages/05-task-management/CLAUDE.md +105 -0
  178. package/template/stages/05-task-management/HANDOFF.md +187 -0
  179. package/template/stages/05-task-management/HANDOFF.md.template +97 -0
  180. package/template/stages/05-task-management/config.yaml +81 -0
  181. package/template/stages/05-task-management/inputs/.gitkeep +0 -0
  182. package/template/stages/05-task-management/outputs/.gitkeep +0 -0
  183. package/template/stages/05-task-management/outputs/CLAUDE.md +0 -0
  184. package/template/stages/05-task-management/outputs/milestones.md +253 -0
  185. package/template/stages/05-task-management/outputs/sprint_plan.md +203 -0
  186. package/template/stages/05-task-management/outputs/tasks.md +402 -0
  187. package/template/stages/05-task-management/prompts/.gitkeep +0 -0
  188. package/template/stages/05-task-management/prompts/CLAUDE.md +0 -0
  189. package/template/stages/05-task-management/prompts/collaboration.md +54 -0
  190. package/template/stages/05-task-management/prompts/validation.md +66 -0
  191. package/template/stages/05-task-management/templates/CLAUDE.md +0 -0
  192. package/template/stages/05-task-management/templates/notion_integration.md +176 -0
  193. package/template/stages/05-task-management/templates/parallel_groups.yaml +153 -0
  194. package/template/stages/05-task-management/templates/task_schema.yaml +154 -0
  195. package/template/stages/06-implementation/CLAUDE.md +163 -0
  196. package/template/stages/06-implementation/HANDOFF.md +184 -0
  197. package/template/stages/06-implementation/HANDOFF.md.template +192 -0
  198. package/template/stages/06-implementation/config.yaml +62 -0
  199. package/template/stages/06-implementation/inputs/.gitkeep +0 -0
  200. package/template/stages/06-implementation/outputs/.gitkeep +0 -0
  201. package/template/stages/06-implementation/prompts/.gitkeep +0 -0
  202. package/template/stages/06-implementation/prompts/CLAUDE.md +0 -0
  203. package/template/stages/06-implementation/prompts/collaboration.md +64 -0
  204. package/template/stages/06-implementation/prompts/validation.md +65 -0
  205. package/template/stages/06-implementation/templates/.gitkeep +0 -0
  206. package/template/stages/07-refactoring/CLAUDE.md +180 -0
  207. package/template/stages/07-refactoring/HANDOFF.md +82 -0
  208. package/template/stages/07-refactoring/HANDOFF.md.template +97 -0
  209. package/template/stages/07-refactoring/config.yaml +68 -0
  210. package/template/stages/07-refactoring/inputs/.gitkeep +0 -0
  211. package/template/stages/07-refactoring/outputs/.gitkeep +0 -0
  212. package/template/stages/07-refactoring/outputs/refactoring_report.md +102 -0
  213. package/template/stages/07-refactoring/prompts/.gitkeep +0 -0
  214. package/template/stages/07-refactoring/prompts/CLAUDE.md +0 -0
  215. package/template/stages/07-refactoring/prompts/collaboration.md +71 -0
  216. package/template/stages/07-refactoring/prompts/validation.md +76 -0
  217. package/template/stages/07-refactoring/templates/.gitkeep +0 -0
  218. package/template/stages/08-qa/CLAUDE.md +93 -0
  219. package/template/stages/08-qa/HANDOFF.md +114 -0
  220. package/template/stages/08-qa/HANDOFF.md.template +96 -0
  221. package/template/stages/08-qa/config.yaml +56 -0
  222. package/template/stages/08-qa/inputs/.gitkeep +0 -0
  223. package/template/stages/08-qa/outputs/.gitkeep +0 -0
  224. package/template/stages/08-qa/outputs/qa_report.md +138 -0
  225. package/template/stages/08-qa/prompts/.gitkeep +0 -0
  226. package/template/stages/08-qa/prompts/CLAUDE.md +0 -0
  227. package/template/stages/08-qa/prompts/collaboration.md +65 -0
  228. package/template/stages/08-qa/prompts/validation.md +71 -0
  229. package/template/stages/08-qa/templates/.gitkeep +0 -0
  230. package/template/stages/09-testing/CLAUDE.md +124 -0
  231. package/template/stages/09-testing/HANDOFF.md +118 -0
  232. package/template/stages/09-testing/HANDOFF.md.template +113 -0
  233. package/template/stages/09-testing/config.yaml +65 -0
  234. package/template/stages/09-testing/inputs/.gitkeep +0 -0
  235. package/template/stages/09-testing/outputs/.gitkeep +0 -0
  236. package/template/stages/09-testing/outputs/test_report.md +146 -0
  237. package/template/stages/09-testing/prompts/.gitkeep +0 -0
  238. package/template/stages/09-testing/prompts/CLAUDE.md +0 -0
  239. package/template/stages/09-testing/prompts/collaboration.md +77 -0
  240. package/template/stages/09-testing/prompts/validation.md +83 -0
  241. package/template/stages/09-testing/templates/.gitkeep +0 -0
  242. package/template/stages/10-deployment/CLAUDE.md +117 -0
  243. package/template/stages/10-deployment/HANDOFF.md +141 -0
  244. package/template/stages/10-deployment/HANDOFF.md.template +148 -0
  245. package/template/stages/10-deployment/config.yaml +61 -0
  246. package/template/stages/10-deployment/inputs/.gitkeep +0 -0
  247. package/template/stages/10-deployment/outputs/.gitkeep +0 -0
  248. package/template/stages/10-deployment/prompts/.gitkeep +0 -0
  249. package/template/stages/10-deployment/prompts/CLAUDE.md +0 -0
  250. package/template/stages/10-deployment/prompts/collaboration.md +80 -0
  251. package/template/stages/10-deployment/prompts/validation.md +93 -0
  252. package/template/stages/10-deployment/templates/CLAUDE.md +0 -0
  253. package/template/stages/10-deployment/templates/github-actions-cd.yaml +118 -0
  254. package/template/stages/10-deployment/templates/github-actions-ci.yaml +136 -0
  255. package/template/state/progress.json.template +111 -0
  256. package/template/state/templates/CLAUDE.md +0 -0
  257. package/template/state/templates/handoff_base.md.template +187 -0
  258. package/template/state/templates/phase_state.md.template +97 -0
@@ -0,0 +1,321 @@
1
+ # 🔄 Snake Game - 사용자 플로우
2
+
3
+ > 생성일: 2026-01-21
4
+ > 스테이지: 04-ui-ux
5
+ > 프로젝트: snake-game
6
+
7
+ ---
8
+
9
+ ## 1. 전체 게임 플로우
10
+
11
+ ```mermaid
12
+ graph TD
13
+ A[앱 접속] --> B[Start Screen]
14
+
15
+ B --> |Start 버튼 클릭| C[Game Playing]
16
+ B --> |How to Play| B1[Instructions Modal]
17
+ B1 --> |닫기| B
18
+
19
+ C --> |방향키/스와이프| C
20
+ C --> |ESC/P/Pause버튼| D[Pause Overlay]
21
+
22
+ D --> |Resume| C
23
+ D --> |Quit| B
24
+
25
+ C --> |벽/자기몸 충돌| E[Game Over Modal]
26
+
27
+ E --> F{최고 점수 갱신?}
28
+ F -- Yes --> G[localStorage 저장]
29
+ F -- No --> H[점수 표시]
30
+ G --> H
31
+
32
+ H --> |Play Again| C
33
+ H --> |Main Menu| B
34
+ ```
35
+
36
+ ---
37
+
38
+ ## 2. 핵심 사용자 플로우
39
+
40
+ ### 2.1 게임 시작 플로우
41
+
42
+ ```
43
+ [Start Screen]
44
+
45
+
46
+ 사용자: Start 버튼 클릭 또는 Enter 키
47
+
48
+
49
+ 시스템: 게임 상태 초기화
50
+ │ - snake: 초기 위치 (10,10)
51
+ │ - food: 랜덤 위치 생성
52
+ │ - score: 0
53
+ │ - direction: RIGHT
54
+ │ - status: PLAYING
55
+
56
+
57
+ 시스템: 게임 루프 시작 (requestAnimationFrame)
58
+
59
+
60
+ [Game Playing]
61
+ ```
62
+
63
+ ### 2.2 게임 플레이 루프
64
+
65
+ ```
66
+ [Game Playing]
67
+
68
+
69
+ ┌─────────────────────────────────┐
70
+ │ 1. 입력 처리 │
71
+ │ - 키보드: Arrow Keys / WASD │
72
+ │ - 터치: Swipe / D-Pad │
73
+ │ - 역방향 입력 무시 │
74
+ └──────────────┬──────────────────┘
75
+
76
+ ┌─────────────────────────────────┐
77
+ │ 2. 게임 틱 (TICK) │
78
+ │ - 뱀 머리 위치 계산 │
79
+ │ - 충돌 감지 실행 │
80
+ └──────────────┬──────────────────┘
81
+
82
+ ┌──────┴──────┐
83
+ │ 충돌 타입? │
84
+ └──────┬──────┘
85
+ ┌────────┼────────┐
86
+ ▼ ▼ ▼
87
+ [벽/자기] [먹이] [없음]
88
+ │ │ │
89
+ ▼ ▼ ▼
90
+ Game Over 성장+점수 이동
91
+ │ │
92
+ └────────┴─────► Canvas 렌더링
93
+
94
+
95
+ 다음 프레임 대기
96
+
97
+ └──► [루프 반복]
98
+ ```
99
+
100
+ ### 2.3 일시정지 / 재개 플로우
101
+
102
+ ```
103
+ [Game Playing]
104
+
105
+
106
+ 사용자: ESC / P / Pause 버튼
107
+
108
+
109
+ 시스템: status → PAUSED
110
+ │ - 게임 루프 정지
111
+ │ - Pause Overlay 표시
112
+
113
+
114
+ [Pause Overlay]
115
+
116
+ ├──► 사용자: Resume 버튼
117
+ │ │
118
+ │ ▼
119
+ │ 시스템: status → PLAYING
120
+ │ │ - 게임 루프 재개
121
+ │ ▼
122
+ │ [Game Playing]
123
+
124
+ └──► 사용자: Quit 버튼
125
+
126
+
127
+ 시스템: 게임 상태 초기화
128
+
129
+
130
+ [Start Screen]
131
+ ```
132
+
133
+ ### 2.4 게임 오버 플로우
134
+
135
+ ```
136
+ [Collision Detected]
137
+
138
+
139
+ 시스템: status → GAME_OVER
140
+ │ - 게임 루프 정지
141
+
142
+
143
+ 시스템: 최고 점수 비교
144
+
145
+ ├──► score > highScore
146
+ │ │
147
+ │ ▼
148
+ │ localStorage 저장
149
+ │ "NEW HIGH SCORE!" 표시
150
+
151
+ └──► score <= highScore
152
+
153
+
154
+ 일반 점수 표시
155
+
156
+
157
+ [Game Over Modal]
158
+
159
+ ├──► 사용자: Play Again (Enter)
160
+ │ │
161
+ │ ▼
162
+ │ 시스템: 게임 리셋 + 시작
163
+ │ │
164
+ │ ▼
165
+ │ [Game Playing]
166
+
167
+ └──► 사용자: Main Menu
168
+
169
+
170
+ 시스템: 게임 리셋
171
+
172
+
173
+ [Start Screen]
174
+ ```
175
+
176
+ ---
177
+
178
+ ## 3. 입력 처리 플로우
179
+
180
+ ### 3.1 키보드 입력
181
+
182
+ ```
183
+ 키보드 이벤트 (keydown)
184
+
185
+
186
+ ┌─────────────────────────────────┐
187
+ │ 키 매핑 │
188
+ │ ArrowUp / W → UP │
189
+ │ ArrowDown / S → DOWN │
190
+ │ ArrowLeft / A → LEFT │
191
+ │ ArrowRight / D → RIGHT │
192
+ │ ESC / P → PAUSE │
193
+ │ Enter / Space → RESTART │
194
+ └──────────────┬──────────────────┘
195
+
196
+ ┌────────┴────────┐
197
+ │ 현재 상태? │
198
+ └────────┬────────┘
199
+ ┌──────┴──────┐
200
+ ▼ ▼
201
+ [PLAYING] [GAME_OVER]
202
+ │ │
203
+ ▼ ▼
204
+ 방향 변경 재시작 처리
205
+ (역방향 무시)
206
+ ```
207
+
208
+ ### 3.2 터치/스와이프 입력
209
+
210
+ ```
211
+ 터치 이벤트
212
+
213
+ ├──► touchstart
214
+ │ - 시작 좌표 저장 (startX, startY)
215
+ │ - 시작 시간 저장
216
+
217
+ └──► touchend
218
+ - 종료 좌표 (endX, endY)
219
+
220
+
221
+ ┌─────────────────────────────┐
222
+ │ 스와이프 판정 │
223
+ │ - 거리 > 50px (threshold) │
224
+ │ - 시간 < 500ms │
225
+ └──────────────┬──────────────┘
226
+
227
+ 방향 계산 (X vs Y delta)
228
+
229
+ ┌─────────┴─────────┐
230
+ ▼ ▼
231
+ |deltaX| > |deltaY| |deltaY| > |deltaX|
232
+ │ │
233
+ ┌────┴────┐ ┌────┴────┐
234
+ ▼ ▼ ▼ ▼
235
+ LEFT RIGHT UP DOWN
236
+ ```
237
+
238
+ ---
239
+
240
+ ## 4. 에러/예외 플로우
241
+
242
+ ### 4.1 localStorage 접근 실패
243
+
244
+ ```
245
+ localStorage 작업 시도
246
+
247
+
248
+ ┌─────────────────────────────────┐
249
+ │ try-catch 처리 │
250
+ │ │
251
+ │ 실패 시: │
252
+ │ - 콘솔 경고 출력 │
253
+ │ - highScore = 0 유지 │
254
+ │ - 게임은 정상 진행 │
255
+ └─────────────────────────────────┘
256
+ ```
257
+
258
+ ### 4.2 Canvas 지원 안 됨
259
+
260
+ ```
261
+ Canvas 초기화
262
+
263
+
264
+ ┌─────────────────────────────────┐
265
+ │ getContext('2d') 호출 │
266
+ │ │
267
+ │ null 반환 시: │
268
+ │ - 에러 메시지 화면 표시 │
269
+ │ - "Your browser does not │
270
+ │ support Canvas" │
271
+ └─────────────────────────────────┘
272
+ ```
273
+
274
+ ---
275
+
276
+ ## 5. 상태 전이 다이어그램
277
+
278
+ ```
279
+ START_GAME
280
+ ┌──────────────────┐
281
+ │ │
282
+ ▼ │
283
+ [IDLE] ────────► [PLAYING]
284
+ ▲ │
285
+ │ RESTART │ PAUSE_GAME
286
+ │ ▼
287
+ │ [PAUSED]
288
+ │ │
289
+ │ RESUME_GAME │
290
+ │ ┌───────────────┘
291
+ │ │
292
+ │ ▼
293
+ │ [PLAYING]
294
+ │ │
295
+ │ │ GAME_OVER (충돌)
296
+ │ ▼
297
+ └── [GAME_OVER]
298
+ ```
299
+
300
+ ### 상태별 허용 액션
301
+
302
+ | 현재 상태 | 허용 액션 |
303
+ |----------|----------|
304
+ | IDLE | START_GAME |
305
+ | PLAYING | CHANGE_DIRECTION, PAUSE_GAME, TICK, GAME_OVER |
306
+ | PAUSED | RESUME_GAME, RESTART |
307
+ | GAME_OVER | RESTART |
308
+
309
+ ---
310
+
311
+ ## ✅ 사용자 플로우 체크리스트
312
+
313
+ - [x] 전체 게임 플로우 다이어그램
314
+ - [x] 게임 시작 플로우
315
+ - [x] 게임 플레이 루프
316
+ - [x] 일시정지/재개 플로우
317
+ - [x] 게임 오버 플로우
318
+ - [x] 키보드 입력 처리
319
+ - [x] 터치/스와이프 입력 처리
320
+ - [x] 에러/예외 플로우
321
+ - [x] 상태 전이 다이어그램
@@ -0,0 +1,241 @@
1
+ # 🎨 Snake Game - 와이어프레임
2
+
3
+ > 생성일: 2026-01-21
4
+ > 스테이지: 04-ui-ux
5
+ > 프로젝트: snake-game
6
+ > AI 도구: Gemini CLI
7
+
8
+ ---
9
+
10
+ ## 1. 화면 개요
11
+
12
+ | 화면 | 설명 | 컴포넌트 |
13
+ |------|------|----------|
14
+ | Start Screen | 게임 시작 전 타이틀 화면 | StartScreen |
15
+ | Desktop Play | 데스크톱 게임 플레이 | GameEngine, CanvasLayer, ScoreBoard |
16
+ | Mobile Play | 모바일 게임 플레이 + 터치 컨트롤 | GameEngine, MobileControls |
17
+ | Pause Overlay | 일시정지 오버레이 | PauseOverlay |
18
+ | Game Over | 게임 오버 모달 | GameOverModal |
19
+
20
+ ---
21
+
22
+ ## 2. 시작 화면 (Start Screen)
23
+
24
+ ```
25
+ +----------------------------------------+
26
+ | |
27
+ | S N A K E |
28
+ | (Neon Logo) |
29
+ | |
30
+ | High Score: 1,250 |
31
+ | |
32
+ | +--------------------------+ |
33
+ | | GAME START | |
34
+ | +--------------------------+ |
35
+ | |
36
+ | [ How to Play ] [ Settings ] |
37
+ | |
38
+ | (c) 2026 Snake Game |
39
+ +----------------------------------------+
40
+ ```
41
+
42
+ ### 상세 명세
43
+
44
+ | 요소 | 스타일 | 상호작용 |
45
+ |------|--------|----------|
46
+ | 로고 | 네온 그린 (#00ff88), Glow 효과 | - |
47
+ | High Score | 노란색 (#f0e130), 서브 텍스트 | - |
48
+ | Start 버튼 | Primary 버튼, 네온 테두리 | 클릭/Enter → 게임 시작 |
49
+ | How to Play | 텍스트 링크 | 클릭 → 설명 모달 |
50
+
51
+ ---
52
+
53
+ ## 3. 게임 플레이 - 데스크톱 (Desktop)
54
+
55
+ ```
56
+ +----------------------------------------+
57
+ | SCORE: 120 BEST: 1,250 |
58
+ +----------------------------------------+
59
+ | |
60
+ | +----------------------------------+ |
61
+ | | | |
62
+ | | [Canvas 400 x 400] | |
63
+ | | | |
64
+ | | ###O @ | |
65
+ | | (Snake) (Food) | |
66
+ | | | |
67
+ | | | |
68
+ | +----------------------------------+ |
69
+ | |
70
+ | [ESC/P] Pause [Arrow Keys] Move |
71
+ +----------------------------------------+
72
+ ```
73
+
74
+ ### 레이아웃 명세
75
+
76
+ | 영역 | 크기 | 배치 |
77
+ |------|------|------|
78
+ | ScoreBoard | 100% width, 48px height | 상단 고정 |
79
+ | Canvas | 400x400px (20x20 * 20px) | 중앙 |
80
+ | Controls Hint | Auto | 하단 |
81
+
82
+ ### 요소 명세
83
+
84
+ | 요소 | 스타일 |
85
+ |------|--------|
86
+ | Score 텍스트 | 화이트 (#ffffff), 좌측 정렬 |
87
+ | Best Score 텍스트 | 골드 (#f0e130), 우측 정렬 |
88
+ | Canvas 배경 | #16213e |
89
+ | Grid Lines | rgba(255, 255, 255, 0.05) |
90
+ | Snake Head | #00cc6a + Glow |
91
+ | Snake Body | #00ff88 + Glow |
92
+ | Food | #ff6b6b + Glow |
93
+
94
+ ---
95
+
96
+ ## 4. 게임 플레이 - 모바일 (Mobile + Touch Controls)
97
+
98
+ ```
99
+ +----------------------------------------+
100
+ | SCORE: 120 [||] (Pause) |
101
+ +----------------------------------------+
102
+ | |
103
+ | +----------------------------------+ |
104
+ | | | |
105
+ | | [Responsive Canvas] | |
106
+ | | (max-width) | |
107
+ | | | |
108
+ | +----------------------------------+ |
109
+ | |
110
+ | [ ^ ] |
111
+ | UP |
112
+ | |
113
+ | [ < ] [ > ] |
114
+ | LEFT RIGHT |
115
+ | |
116
+ | [ v ] |
117
+ | DOWN |
118
+ +----------------------------------------+
119
+ ```
120
+
121
+ ### 모바일 레이아웃
122
+
123
+ | 영역 | 크기 | 배치 |
124
+ |------|------|------|
125
+ | ScoreBoard | 100% width, 44px | 상단 |
126
+ | Pause 버튼 | 44x44px | 상단 우측 |
127
+ | Canvas | calc(100vw - 32px), max 400px | 중앙 |
128
+ | D-Pad Controls | 200x200px | 하단 중앙 |
129
+
130
+ ### D-Pad 버튼 명세
131
+
132
+ | 버튼 | 크기 | 터치 영역 |
133
+ |------|------|----------|
134
+ | 상/하/좌/우 | 56x56px | 64x64px (최소) |
135
+ | 활성 상태 | 배경 Primary, 테두리 강조 |
136
+
137
+ ---
138
+
139
+ ## 5. 일시정지 오버레이 (Pause Overlay)
140
+
141
+ ```
142
+ +----------------------------------------+
143
+ | SCORE: 120 BEST: 1,250 |
144
+ +----------------------------------------+
145
+ | +----------------------------------+ |
146
+ | | | |
147
+ | | ▌▌ PAUSED | |
148
+ | | | |
149
+ | | +----------------+ | |
150
+ | | | RESUME | | |
151
+ | | +----------------+ | |
152
+ | | | |
153
+ | | +----------------+ | |
154
+ | | | QUIT | | |
155
+ | | +----------------+ | |
156
+ | | | |
157
+ | +----------------------------------+ |
158
+ | |
159
+ +----------------------------------------+
160
+ ```
161
+
162
+ ### 오버레이 명세
163
+
164
+ | 요소 | 스타일 |
165
+ |------|--------|
166
+ | 배경 | rgba(0, 0, 0, 0.8), 블러 효과 |
167
+ | PAUSED 텍스트 | 화이트, 큰 폰트 |
168
+ | Resume 버튼 | Primary 버튼 (#00ff88) |
169
+ | Quit 버튼 | Secondary 버튼 (투명, 테두리만) |
170
+
171
+ ---
172
+
173
+ ## 6. 게임 오버 모달 (Game Over Modal)
174
+
175
+ ```
176
+ +----------------------------------------+
177
+ | (Dimmed Background Overlay) |
178
+ | |
179
+ | +------------------------------+ |
180
+ | | | |
181
+ | | G A M E O V E R | |
182
+ | | | |
183
+ | | Final Score: 120 | |
184
+ | | | |
185
+ | | ★ NEW HIGH SCORE! ★ | |
186
+ | | | |
187
+ | | +------------------------+ | |
188
+ | | | PLAY AGAIN (Enter) | | |
189
+ | | +------------------------+ | |
190
+ | | | |
191
+ | | [ Main Menu ] | |
192
+ | +------------------------------+ |
193
+ | |
194
+ +----------------------------------------+
195
+ ```
196
+
197
+ ### 모달 명세
198
+
199
+ | 요소 | 스타일 | 조건 |
200
+ |------|--------|------|
201
+ | 배경 오버레이 | rgba(0, 0, 0, 0.85) | - |
202
+ | 모달 박스 | #16213e, 네온 테두리, 둥근 모서리 | - |
203
+ | GAME OVER | 레드 (#ff6b6b), Glow | - |
204
+ | Final Score | 화이트, 큰 폰트 | - |
205
+ | NEW HIGH SCORE | 골드 (#f0e130), 깜빡임 | score > highScore |
206
+ | Play Again | Primary 버튼, 전체 너비 | - |
207
+ | Main Menu | 텍스트 링크 | - |
208
+
209
+ ---
210
+
211
+ ## 7. 반응형 브레이크포인트
212
+
213
+ | 브레이크포인트 | 화면 너비 | 변경 사항 |
214
+ |--------------|----------|----------|
215
+ | Mobile | < 480px | 터치 컨트롤 활성화, 캔버스 축소 |
216
+ | Tablet | 480px - 768px | 터치 컨트롤 선택적 |
217
+ | Desktop | > 768px | 키보드 컨트롤, 풀 캔버스 |
218
+
219
+ ---
220
+
221
+ ## 8. 애니메이션 명세
222
+
223
+ | 애니메이션 | 트리거 | 효과 |
224
+ |-----------|--------|------|
225
+ | Score Pulse | 점수 증가 | scale(1.2) → scale(1), 200ms |
226
+ | Modal Enter | 모달 열림 | opacity 0→1, scale(0.9→1), 300ms |
227
+ | Modal Exit | 모달 닫힘 | opacity 1→0, 200ms |
228
+ | Button Hover | 버튼 호버 | 배경색 채움, 100ms |
229
+ | Snake Glow | 항상 | box-shadow pulse, 1s loop |
230
+
231
+ ---
232
+
233
+ ## ✅ 와이어프레임 체크리스트
234
+
235
+ - [x] 시작 화면
236
+ - [x] 게임 플레이 (데스크톱)
237
+ - [x] 게임 플레이 (모바일)
238
+ - [x] 일시정지 오버레이
239
+ - [x] 게임 오버 모달
240
+ - [x] 반응형 브레이크포인트
241
+ - [x] 애니메이션 명세
File without changes
File without changes
@@ -0,0 +1,56 @@
1
+ # AI 협업 프롬프트 - UI/UX Planning
2
+
3
+ ## 협업 모드: Debate + Parallel
4
+
5
+ 이 스테이지에서는 **토론 모드**로 UX 방향성을 결정하고, **병렬 모드**로 세부 설계를 진행합니다.
6
+
7
+ ### 참여 모델
8
+ - **Gemini**: 창의적 UI 설계, 와이어프레임 생성
9
+ - **Claude**: 사용성 검토, 접근성 평가
10
+
11
+ ### 협업 프롬프트
12
+
13
+ ```
14
+ # UX 방향 토론
15
+ /collaborate --mode debate --topic "사용자 경험 방향성" --rounds 2
16
+
17
+ # 병렬 설계
18
+ /collaborate --mode parallel --models gemini,claude --task "UI 컴포넌트 설계"
19
+ ```
20
+
21
+ ### 토론 주제
22
+
23
+ 1. **인터랙션 패턴**: 전통적 vs 혁신적
24
+ 2. **정보 아키텍처**: 평면 vs 계층
25
+ 3. **디자인 시스템**: 기존 사용 vs 커스텀
26
+
27
+ ### 작업 분담
28
+
29
+ | AI | 담당 영역 | 출력 |
30
+ |----|----------|------|
31
+ | Gemini | 와이어프레임, 시각 설계 | wireframes.md |
32
+ | Claude | 사용자 플로우, 접근성 검토 | user_flows.md |
33
+
34
+ ### 디자인 검토 체크리스트
35
+
36
+ - [ ] 사용자 시나리오 기반 설계
37
+ - [ ] 반응형 고려
38
+ - [ ] 접근성 (WCAG 2.1)
39
+ - [ ] 일관된 디자인 언어
40
+
41
+ ### 출력 형식
42
+
43
+ ```markdown
44
+ ## AI 협업 결과
45
+
46
+ ### Gemini 설계
47
+ - 와이어프레임 (ASCII/Mermaid)
48
+ - 색상/타이포그래피 제안
49
+
50
+ ### Claude 검토
51
+ - 사용성 평가
52
+ - 접근성 개선점
53
+
54
+ ### 통합 디자인 시스템
55
+ - [최종 컴포넌트 목록]
56
+ ```
@@ -0,0 +1,54 @@
1
+ # 산출물 검증 프롬프트 - UI/UX Planning
2
+
3
+ ## 검증 대상
4
+
5
+ | 산출물 | 필수 조건 | 검증 방법 |
6
+ |--------|----------|----------|
7
+ | `wireframes.md` | 주요 화면 5개+ | 수량 확인 |
8
+ | `user_flows.md` | 핵심 플로우 3개+ | 수량 확인 |
9
+ | `design_system.md` | 색상/타이포/스페이싱 | 구조 확인 |
10
+ | `HANDOFF.md` | 컴포넌트 목록 | 항목 확인 |
11
+
12
+ ## 검증 명령
13
+
14
+ ```bash
15
+ /validate --stage 04-ui-ux
16
+ ```
17
+
18
+ ## 품질 기준
19
+
20
+ ### wireframes.md
21
+ - [ ] 주요 화면 5개 이상
22
+ - [ ] 각 화면 설명
23
+ - [ ] 반응형 breakpoint 고려
24
+ - [ ] 상호작용 설명
25
+
26
+ ### user_flows.md
27
+ - [ ] 핵심 사용자 플로우 3개 이상
28
+ - [ ] 각 플로우 다이어그램
29
+ - [ ] 엣지 케이스 처리
30
+ - [ ] 에러 상태 정의
31
+
32
+ ### design_system.md
33
+ - [ ] 색상 팔레트 (Primary, Secondary, Neutral)
34
+ - [ ] 타이포그래피 스케일
35
+ - [ ] 스페이싱 시스템
36
+ - [ ] 컴포넌트 목록 및 변형
37
+
38
+ ### HANDOFF.md
39
+ - [ ] 구현할 컴포넌트 목록
40
+ - [ ] 우선순위 지정
41
+ - [ ] 기술적 고려사항
42
+
43
+ ## 자동 검증 스크립트
44
+
45
+ ```bash
46
+ # 와이어프레임 수 확인
47
+ grep -c "^### " outputs/wireframes.md
48
+
49
+ # 사용자 플로우 수 확인
50
+ grep -c "^## Flow" outputs/user_flows.md
51
+
52
+ # 디자인 시스템 섹션 확인
53
+ grep -E "^## (색상|Color|타이포|Typography|스페이싱|Spacing)" outputs/design_system.md
54
+ ```
File without changes