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,204 @@
1
+ # 📅 Snake Game - 프로젝트 계획
2
+
3
+ > 생성일: 2026-01-21
4
+ > 스테이지: 03-planning
5
+ > 프로젝트: snake-game
6
+
7
+ ---
8
+
9
+ ## 1. 마일스톤 정의
10
+
11
+ ### Phase 1: MVP (핵심 기능)
12
+
13
+ | 마일스톤 | 목표 | 완료 기준 |
14
+ |---------|------|----------|
15
+ | M1.1 | 프로젝트 셋업 | Vite + React + TypeScript 환경 구성 완료 |
16
+ | M1.2 | 게임 보드 렌더링 | Canvas에 그리드 표시, 뱀 초기 위치 렌더링 |
17
+ | M1.3 | 뱀 이동 | 방향키로 뱀 이동, 게임 루프 동작 |
18
+ | M1.4 | 먹이 시스템 | 먹이 생성, 먹이 충돌 시 뱀 성장 |
19
+ | M1.5 | 충돌 감지 | 벽/자기 몸 충돌 시 게임 오버 |
20
+ | M1.6 | 점수 & UI | 점수 표시, 게임 오버 화면, 재시작 |
21
+
22
+ ### Phase 2: 향상된 기능
23
+
24
+ | 마일스톤 | 목표 | 완료 기준 |
25
+ |---------|------|----------|
26
+ | M2.1 | 레벨 시스템 | 점수 증가 시 속도 증가 |
27
+ | M2.2 | 최고 점수 | localStorage 저장/불러오기 |
28
+ | M2.3 | 일시정지 | P/Escape 키로 일시정지/재개 |
29
+ | M2.4 | 모바일 지원 | 터치 스와이프 + 방향 버튼 |
30
+
31
+ ### Phase 3: 폴리싱
32
+
33
+ | 마일스톤 | 목표 | 완료 기준 |
34
+ |---------|------|----------|
35
+ | M3.1 | 반응형 디자인 | 다양한 화면 크기 대응 |
36
+ | M3.2 | 테스트 작성 | 단위 테스트 커버리지 80%+ |
37
+ | M3.3 | 배포 | GitHub Pages 또는 Vercel 배포 |
38
+
39
+ ---
40
+
41
+ ## 2. 스프린트 계획
42
+
43
+ ### Sprint 1: 프로젝트 기반 (04-ui-ux ~ 05-task-management)
44
+
45
+ | 태스크 | 담당 스테이지 | 산출물 |
46
+ |--------|-------------|--------|
47
+ | UI/UX 와이어프레임 | 04-ui-ux | wireframes.md |
48
+ | 디자인 토큰 정의 | 04-ui-ux | design-tokens.md |
49
+ | 태스크 분해 | 05-task-management | tasks.md |
50
+ | 스프린트 계획 | 05-task-management | sprint-plan.md |
51
+
52
+ ### Sprint 2: MVP 구현 (06-implementation)
53
+
54
+ | 태스크 | 우선순위 | 예상 시간 |
55
+ |--------|---------|----------|
56
+ | 프로젝트 초기화 (Vite) | P0 | 10분 |
57
+ | 타입 정의 | P0 | 10분 |
58
+ | 상수 정의 | P0 | 10분 |
59
+ | useGameLoop 훅 | P0 | 15분 |
60
+ | useKeyboard 훅 | P0 | 15분 |
61
+ | gameReducer 구현 | P0 | 20분 |
62
+ | collision.ts 구현 | P0 | 15분 |
63
+ | renderer.ts 구현 | P0 | 20분 |
64
+ | CanvasLayer 컴포넌트 | P0 | 15분 |
65
+ | GameEngine 컴포넌트 | P0 | 20분 |
66
+ | ScoreBoard 컴포넌트 | P1 | 10분 |
67
+ | GameOverModal 컴포넌트 | P1 | 15분 |
68
+ | App 통합 | P0 | 15분 |
69
+
70
+ ### Sprint 3: 기능 확장 (06-implementation 계속)
71
+
72
+ | 태스크 | 우선순위 | 예상 시간 |
73
+ |--------|---------|----------|
74
+ | 레벨 시스템 | P1 | 15분 |
75
+ | useHighScore 훅 | P1 | 15분 |
76
+ | 일시정지 기능 | P1 | 10분 |
77
+ | useSwipe 훅 | P1 | 20분 |
78
+ | MobileControls 컴포넌트 | P1 | 20분 |
79
+ | StartScreen 컴포넌트 | P2 | 15분 |
80
+
81
+ ### Sprint 4: 품질 개선 (07-refactoring ~ 08-qa)
82
+
83
+ | 태스크 | 담당 스테이지 | 예상 시간 |
84
+ |--------|-------------|----------|
85
+ | 코드 리뷰 & 리팩토링 | 07-refactoring | 30분 |
86
+ | 성능 최적화 | 07-refactoring | 20분 |
87
+ | 버그 수정 | 08-qa | 20분 |
88
+ | 엣지 케이스 테스트 | 08-qa | 15분 |
89
+
90
+ ### Sprint 5: 테스트 & 배포 (09-testing ~ 10-deployment)
91
+
92
+ | 태스크 | 담당 스테이지 | 예상 시간 |
93
+ |--------|-------------|----------|
94
+ | 단위 테스트 작성 | 09-testing | 30분 |
95
+ | E2E 테스트 작성 | 09-testing | 20분 |
96
+ | 빌드 설정 | 10-deployment | 10분 |
97
+ | 배포 | 10-deployment | 15분 |
98
+
99
+ ---
100
+
101
+ ## 3. 의존성 그래프
102
+
103
+ ```
104
+ 프로젝트 초기화
105
+
106
+
107
+ ┌──────┴──────┐
108
+ │ │
109
+ ▼ ▼
110
+ 타입 정의 상수 정의
111
+ │ │
112
+ └──────┬──────┘
113
+
114
+
115
+ ┌──────┴──────┬──────────────┐
116
+ │ │ │
117
+ ▼ ▼ ▼
118
+ useGameLoop useKeyboard collision.ts
119
+ │ │ │
120
+ └─────────────┼──────────────┘
121
+
122
+
123
+ gameReducer
124
+
125
+
126
+ renderer.ts
127
+
128
+
129
+ CanvasLayer
130
+
131
+
132
+ GameEngine
133
+
134
+ ┌──────┼──────┐
135
+ │ │ │
136
+ ▼ ▼ ▼
137
+ ScoreBoard Modal App
138
+ ```
139
+
140
+ ---
141
+
142
+ ## 4. 리스크 관리
143
+
144
+ ### 기술적 리스크
145
+
146
+ | 리스크 | 확률 | 영향 | 대응 |
147
+ |--------|------|------|------|
148
+ | Canvas 성능 이슈 | 낮 | 중 | requestAnimationFrame 최적화 |
149
+ | 모바일 터치 지연 | 중 | 중 | passive 리스너, 즉시 응답 |
150
+ | 상태 동기화 문제 | 중 | 높 | useRef로 게임 상태 분리 |
151
+
152
+ ### 일정 리스크
153
+
154
+ | 리스크 | 확률 | 영향 | 대응 |
155
+ |--------|------|------|------|
156
+ | 기능 범위 확대 | 중 | 중 | MVP 우선, Phase 분리 |
157
+ | 디버깅 시간 초과 | 중 | 중 | 단계별 테스트 |
158
+
159
+ ---
160
+
161
+ ## 5. 완료 기준 (Definition of Done)
162
+
163
+ ### 코드 레벨
164
+ - [ ] TypeScript 컴파일 에러 0개
165
+ - [ ] ESLint 경고 0개
166
+ - [ ] 단위 테스트 커버리지 80%+
167
+
168
+ ### 기능 레벨
169
+ - [ ] 방향키로 뱀 이동 가능
170
+ - [ ] 먹이 먹으면 길이 증가 + 점수 획득
171
+ - [ ] 벽/자기 몸 충돌 시 게임 오버
172
+ - [ ] 게임 재시작 가능
173
+ - [ ] 최고 점수 저장/표시
174
+
175
+ ### 품질 레벨
176
+ - [ ] 60fps 유지 (Chrome DevTools 확인)
177
+ - [ ] 모바일 터치 작동
178
+ - [ ] 접근성 기본 준수 (키보드 네비게이션)
179
+
180
+ ---
181
+
182
+ ## 6. 스테이지별 예상 시간
183
+
184
+ | 스테이지 | 예상 시간 | 주요 산출물 |
185
+ |---------|----------|------------|
186
+ | 04-ui-ux | 15분 | wireframes.md, design-tokens.md |
187
+ | 05-task-management | 15분 | tasks.md, sprint-plan.md |
188
+ | 06-implementation | 60분 | 소스 코드 전체 |
189
+ | 07-refactoring | 30분 | 최적화된 코드 |
190
+ | 08-qa | 20분 | 버그 수정 |
191
+ | 09-testing | 30분 | 테스트 코드 |
192
+ | 10-deployment | 20분 | 배포된 앱 |
193
+ | **총계** | **~3시간** | - |
194
+
195
+ ---
196
+
197
+ ## ✅ 프로젝트 계획 체크리스트
198
+
199
+ - [x] 마일스톤 정의
200
+ - [x] 스프린트 계획
201
+ - [x] 의존성 그래프
202
+ - [x] 리스크 관리 계획
203
+ - [x] 완료 기준 정의
204
+ - [x] 시간 추정
@@ -0,0 +1,176 @@
1
+ # 🔧 Snake Game - 기술 스택 결정
2
+
3
+ > 생성일: 2026-01-21
4
+ > 스테이지: 03-planning
5
+ > 프로젝트: snake-game
6
+
7
+ ---
8
+
9
+ ## 📋 최종 기술 스택
10
+
11
+ ### 핵심 스택
12
+
13
+ | 카테고리 | 선택 | 버전 | 근거 |
14
+ |---------|------|------|------|
15
+ | **프레임워크** | React | ^18.2.0 | 컴포넌트 기반, 훅 시스템 |
16
+ | **언어** | TypeScript | ^5.3.0 | 타입 안전성, IDE 지원 |
17
+ | **빌드** | Vite | ^5.0.0 | 빠른 HMR, 최적화된 빌드 |
18
+ | **렌더링** | Canvas API | 네이티브 | 게임 성능, 60fps |
19
+ | **상태관리** | useReducer + useRef | React 내장 | 외부 의존성 최소화 |
20
+
21
+ ### 개발 도구
22
+
23
+ | 카테고리 | 선택 | 버전 | 용도 |
24
+ |---------|------|------|------|
25
+ | **린터** | ESLint | ^8.55.0 | 코드 품질 |
26
+ | **포맷터** | Prettier | ^3.1.0 | 코드 일관성 |
27
+ | **테스트** | Vitest | ^1.1.0 | 단위/통합 테스트 |
28
+ | **E2E** | Playwright | ^1.40.0 | E2E 테스트 |
29
+
30
+ ### 스타일링
31
+
32
+ | 카테고리 | 선택 | 근거 |
33
+ |---------|------|------|
34
+ | **CSS** | CSS Modules | 스코프 격리, 번들 최적화 |
35
+ | **대안** | Tailwind CSS | 빠른 프로토타이핑 (선택) |
36
+
37
+ ---
38
+
39
+ ## 📦 package.json 의존성
40
+
41
+ ```json
42
+ {
43
+ "name": "snake-game",
44
+ "private": true,
45
+ "version": "1.0.0",
46
+ "type": "module",
47
+ "scripts": {
48
+ "dev": "vite",
49
+ "build": "tsc && vite build",
50
+ "preview": "vite preview",
51
+ "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
52
+ "format": "prettier --write \"src/**/*.{ts,tsx,css}\"",
53
+ "typecheck": "tsc --noEmit",
54
+ "test": "vitest",
55
+ "test:coverage": "vitest run --coverage",
56
+ "test:e2e": "playwright test"
57
+ },
58
+ "dependencies": {
59
+ "react": "^18.2.0",
60
+ "react-dom": "^18.2.0"
61
+ },
62
+ "devDependencies": {
63
+ "@types/react": "^18.2.43",
64
+ "@types/react-dom": "^18.2.17",
65
+ "@typescript-eslint/eslint-plugin": "^6.14.0",
66
+ "@typescript-eslint/parser": "^6.14.0",
67
+ "@vitejs/plugin-react": "^4.2.1",
68
+ "@vitest/coverage-v8": "^1.1.0",
69
+ "@testing-library/react": "^14.1.0",
70
+ "@testing-library/jest-dom": "^6.1.6",
71
+ "@playwright/test": "^1.40.0",
72
+ "eslint": "^8.55.0",
73
+ "eslint-plugin-react-hooks": "^4.6.0",
74
+ "eslint-plugin-react-refresh": "^0.4.5",
75
+ "jsdom": "^23.0.1",
76
+ "prettier": "^3.1.0",
77
+ "typescript": "^5.3.0",
78
+ "vite": "^5.0.0",
79
+ "vitest": "^1.1.0"
80
+ }
81
+ }
82
+ ```
83
+
84
+ ---
85
+
86
+ ## ⚖️ 기술 결정 근거
87
+
88
+ ### 1. React vs Vue vs Svelte
89
+
90
+ | 항목 | React | Vue | Svelte |
91
+ |------|-------|-----|--------|
92
+ | 생태계 | ⭐⭐⭐ | ⭐⭐ | ⭐ |
93
+ | 학습 곡선 | 중간 | 낮음 | 낮음 |
94
+ | 게임 개발 자료 | 많음 | 보통 | 적음 |
95
+ | 커뮤니티 | 최대 | 큼 | 성장 중 |
96
+
97
+ **선택: React** - 풍부한 게임 개발 자료, 훅 시스템 활용
98
+
99
+ ### 2. Canvas vs CSS Grid vs SVG
100
+
101
+ | 항목 | Canvas | CSS Grid | SVG |
102
+ |------|--------|----------|-----|
103
+ | 성능 (대량 요소) | ⭐⭐⭐ | ⭐ | ⭐⭐ |
104
+ | 구현 복잡도 | 중간 | 낮음 | 높음 |
105
+ | 애니메이션 | ⭐⭐⭐ | ⭐⭐ | ⭐⭐ |
106
+ | 반응형 | 코드 필요 | 자동 | 자동 |
107
+
108
+ **선택: Canvas** - 게임에 최적화, 60fps 보장
109
+
110
+ ### 3. 상태 관리: useReducer vs Redux vs Zustand
111
+
112
+ | 항목 | useReducer | Redux | Zustand |
113
+ |------|-----------|-------|---------|
114
+ | 번들 크기 | 0KB | ~43KB | ~3KB |
115
+ | 복잡도 | 낮음 | 높음 | 낮음 |
116
+ | 게임 적합성 | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ |
117
+
118
+ **선택: useReducer** - 외부 의존성 없음, 게임 규모에 적합
119
+
120
+ ### 4. Vite vs CRA vs Next.js
121
+
122
+ | 항목 | Vite | CRA | Next.js |
123
+ |------|------|-----|---------|
124
+ | 빌드 속도 | ⭐⭐⭐ | ⭐ | ⭐⭐ |
125
+ | 설정 복잡도 | 낮음 | 낮음 | 중간 |
126
+ | 정적 빌드 | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ |
127
+
128
+ **선택: Vite** - 빠른 개발 경험, 최적화된 빌드
129
+
130
+ ---
131
+
132
+ ## 🚫 미사용 기술
133
+
134
+ | 기술 | 미사용 이유 |
135
+ |------|-----------|
136
+ | Phaser.js | 게임 엔진 금지 (순수 React) |
137
+ | PixiJS | 게임 엔진 금지 |
138
+ | jQuery | 레거시, React와 충돌 |
139
+ | MobX | 과도한 복잡성 |
140
+ | Next.js | SSR 불필요 (정적 게임) |
141
+ | Sass/SCSS | CSS Modules로 충분 |
142
+
143
+ ---
144
+
145
+ ## 📁 프로젝트 생성 명령
146
+
147
+ ```bash
148
+ # Vite로 React + TypeScript 프로젝트 생성
149
+ npm create vite@latest snake-game -- --template react-ts
150
+
151
+ # 디렉토리 이동
152
+ cd snake-game
153
+
154
+ # 의존성 설치
155
+ npm install
156
+
157
+ # 개발 도구 설치
158
+ npm install -D @vitest/coverage-v8 @testing-library/react \
159
+ @testing-library/jest-dom jsdom @playwright/test
160
+
161
+ # 개발 서버 시작
162
+ npm run dev
163
+ ```
164
+
165
+ ---
166
+
167
+ ## ✅ 기술 스택 체크리스트
168
+
169
+ - [x] 핵심 프레임워크 선택 (React 18)
170
+ - [x] 언어 선택 (TypeScript 5)
171
+ - [x] 빌드 도구 선택 (Vite 5)
172
+ - [x] 렌더링 방식 선택 (Canvas API)
173
+ - [x] 상태 관리 방식 선택 (useReducer + useRef)
174
+ - [x] 스타일링 방식 선택 (CSS Modules)
175
+ - [x] 테스트 도구 선택 (Vitest + Playwright)
176
+ - [x] 의존성 목록 작성
File without changes
@@ -0,0 +1,62 @@
1
+ # Architecture Design Prompt
2
+
3
+ ## 사용 모델
4
+ Gemini
5
+
6
+ ## 프롬프트
7
+
8
+ ```
9
+ 당신은 시니어 소프트웨어 아키텍트입니다.
10
+
11
+ 다음 요구사항과 기술 리서치를 바탕으로 시스템 아키텍처를 설계해주세요:
12
+
13
+ ---
14
+ ## 요구사항
15
+ {{REQUIREMENTS}}
16
+
17
+ ## 기술 리서치 결과
18
+ {{TECH_RESEARCH}}
19
+
20
+ ## 실현 가능성 평가
21
+ {{FEASIBILITY}}
22
+ ---
23
+
24
+ ## 설계 항목
25
+
26
+ ### 1. 시스템 개요
27
+ - 시스템 목적
28
+ - 주요 기능
29
+ - 비기능적 요구사항 대응
30
+
31
+ ### 2. 아키텍처 스타일
32
+ - 선택: Monolithic / Microservices / Serverless / Hybrid
33
+ - 선택 근거
34
+
35
+ ### 3. 컴포넌트 설계
36
+ 각 컴포넌트에 대해:
37
+ - 이름
38
+ - 책임
39
+ - 인터페이스
40
+ - 의존성
41
+
42
+ ### 4. 데이터 아키텍처
43
+ - 데이터 모델 개요
44
+ - 데이터 흐름
45
+ - 저장소 전략
46
+
47
+ ### 5. 통합 포인트
48
+ - 외부 API
49
+ - 서드파티 서비스
50
+ - 인증/인가
51
+
52
+ ### 6. 다이어그램 (Mermaid)
53
+ - 시스템 컨텍스트
54
+ - 컨테이너 다이어그램
55
+ - 컴포넌트 다이어그램
56
+
57
+ ## 출력 형식
58
+ Mermaid 다이어그램을 포함한 마크다운 문서
59
+ ```
60
+
61
+ ## 기대 출력
62
+ `outputs/architecture.md`
@@ -0,0 +1,57 @@
1
+ # AI 협업 프롬프트 - Planning
2
+
3
+ ## 협업 모드: Debate
4
+
5
+ 이 스테이지에서는 **토론 모드**를 사용하여 최적의 아키텍처와 기술 스택을 결정합니다.
6
+
7
+ ### 참여 모델
8
+ - **Gemini**: 아키텍처 설계, 다이어그램 생성
9
+ - **Claude**: 기술적 검증, 실현 가능성 평가
10
+
11
+ ### 협업 프롬프트
12
+
13
+ ```
14
+ /collaborate --mode debate --topic "시스템 아키텍처 결정" --rounds 3
15
+ ```
16
+
17
+ ### 토론 주제
18
+
19
+ 1. **아키텍처 패턴**: Monolith vs Microservices vs Modular Monolith
20
+ 2. **기술 스택**: 프레임워크 및 라이브러리 선택
21
+ 3. **데이터베이스**: SQL vs NoSQL vs Hybrid
22
+
23
+ ### 토론 형식
24
+
25
+ | 라운드 | Gemini | Claude |
26
+ |--------|--------|--------|
27
+ | 1 | 제안 | 반론/대안 |
28
+ | 2 | 보완 | 검증/평가 |
29
+ | 3 | 최종안 | 합의/확인 |
30
+
31
+ ### 파이프라인 분기 트리거
32
+
33
+ 아키텍처 대안이 2개 이상 유효할 경우:
34
+ ```
35
+ /fork create --reason "아키텍처 대안 탐색" --direction "monolith"
36
+ /fork create --reason "아키텍처 대안 탐색" --direction "microservices"
37
+ ```
38
+
39
+ ### 출력 형식
40
+
41
+ ```markdown
42
+ ## AI 토론 결과
43
+
44
+ ### 주제: [아키텍처 결정]
45
+
46
+ ### 라운드 1
47
+ - **Gemini**: [제안]
48
+ - **Claude**: [반론/대안]
49
+
50
+ ### 라운드 2
51
+ - **Gemini**: [보완]
52
+ - **Claude**: [검증]
53
+
54
+ ### 최종 결론
55
+ - [합의된 아키텍처]
56
+ - [근거]
57
+ ```
@@ -0,0 +1,59 @@
1
+ # 산출물 검증 프롬프트 - Planning
2
+
3
+ ## 검증 대상
4
+
5
+ | 산출물 | 필수 조건 | 검증 방법 |
6
+ |--------|----------|----------|
7
+ | `architecture.md` | 다이어그램 4종 | 구조 확인 |
8
+ | `tech_stack.md` | 버전/의존성 명시 | 항목 확인 |
9
+ | `project_plan.md` | 마일스톤 3개+ | 수량 확인 |
10
+ | `implementation.yaml` | 구현 규칙 정의 | 스키마 검증 |
11
+ | `HANDOFF.md` | 다음 단계 지침 | 항목 확인 |
12
+
13
+ ## 검증 명령
14
+
15
+ ```bash
16
+ /validate --stage 03-planning
17
+ ```
18
+
19
+ ## 품질 기준
20
+
21
+ ### architecture.md
22
+ - [ ] 시스템 컨텍스트 다이어그램
23
+ - [ ] 컨테이너 다이어그램
24
+ - [ ] 컴포넌트 다이어그램
25
+ - [ ] 시퀀스 다이어그램 (핵심 플로우)
26
+ - [ ] 데이터 흐름 설명
27
+
28
+ ### tech_stack.md
29
+ - [ ] 프론트엔드 스택 명시
30
+ - [ ] 백엔드 스택 명시
31
+ - [ ] 데이터베이스 선택
32
+ - [ ] 버전 및 의존성 정의
33
+ - [ ] 선택 근거 문서화
34
+
35
+ ### project_plan.md
36
+ - [ ] 마일스톤 3개 이상
37
+ - [ ] 각 마일스톤별 산출물
38
+ - [ ] 스프린트 계획
39
+ - [ ] 리소스 할당
40
+
41
+ ### implementation.yaml
42
+ - [ ] 컴포넌트 타입 정의
43
+ - [ ] 스타일링 방식 정의
44
+ - [ ] 상태 관리 패턴 정의
45
+ - [ ] 네이밍 규칙 정의
46
+ - [ ] 폴더 구조 정의
47
+
48
+ ## 자동 검증 스크립트
49
+
50
+ ```bash
51
+ # 다이어그램 수 확인 (mermaid 블록)
52
+ grep -c "```mermaid" outputs/architecture.md
53
+
54
+ # implementation.yaml 유효성
55
+ yq eval '.' outputs/implementation.yaml
56
+
57
+ # 마일스톤 수 확인
58
+ grep -c "^## Milestone" outputs/project_plan.md
59
+ ```
File without changes
@@ -0,0 +1,88 @@
1
+ # Stage 04: UI/UX Planning
2
+
3
+ 사용자 인터페이스 및 경험 설계 단계
4
+
5
+ ## 🎭 페르소나: User Experience Designer
6
+
7
+ > 당신은 User Experience Designer입니다.
8
+ > 항상 사용자 관점에서 생각하고, 직관적인 경험을 설계하세요.
9
+ > 모든 사용자가 쉽게 사용할 수 있도록 접근성을 고려하세요.
10
+
11
+ ### 특성
12
+ - 사용자 공감
13
+ - 시각적 사고
14
+ - 인터랙션 설계
15
+ - 접근성 고려
16
+
17
+ ### 권장 행동
18
+ - 사용자 시나리오 기반
19
+ - 직관적 인터페이스
20
+ - 일관된 디자인 시스템
21
+ - 접근성 고려
22
+
23
+ ### 지양 행동
24
+ - 기술 중심 사고
25
+ - 복잡한 인터랙션
26
+ - 사용자 무시
27
+
28
+ ### AI 설정
29
+ - **Temperature**: 0.7 (창의적 설계)
30
+ - **사용자 집중도**: High
31
+
32
+ ## 실행 모델
33
+ - **Primary**: Gemini (창의적 UI 설계)
34
+ - **Mode**: Plan Mode
35
+
36
+ ## 목표
37
+ 1. 와이어프레임 설계
38
+ 2. 사용자 플로우 정의
39
+ 3. 디자인 시스템 기초 수립
40
+ 4. 컴포넌트 라이브러리 정의
41
+
42
+ ## 입력 파일
43
+ - `../01-brainstorm/outputs/requirements_analysis.md`
44
+ - `../03-planning/outputs/architecture.md`
45
+ - `../03-planning/HANDOFF.md`
46
+
47
+ ## 출력 파일
48
+ - `outputs/wireframes.md` - 와이어프레임 (ASCII/Mermaid)
49
+ - `outputs/user_flows.md` - 사용자 플로우
50
+ - `outputs/design_system.md` - 디자인 시스템
51
+ - `HANDOFF.md` - 다음 스테이지 인계 문서
52
+
53
+ ## 워크플로우
54
+
55
+ ### 1. 정보 아키텍처
56
+ - 화면 구조 정의
57
+ - 네비게이션 설계
58
+ - 콘텐츠 계층
59
+
60
+ ### 2. 와이어프레임
61
+ - 주요 화면 와이어프레임
62
+ - 반응형 고려사항
63
+ - 상호작용 정의
64
+
65
+ ### 3. 사용자 플로우
66
+ - 핵심 사용자 여정
67
+ - 엣지 케이스 처리
68
+ - 에러 상태
69
+
70
+ ### 4. 디자인 시스템
71
+ - 색상 팔레트
72
+ - 타이포그래피
73
+ - 스페이싱 시스템
74
+ - 컴포넌트 목록
75
+
76
+ ## 완료 조건
77
+ - [ ] 주요 화면 와이어프레임 (5개 이상)
78
+ - [ ] 핵심 사용자 플로우 3개 이상
79
+ - [ ] 디자인 시스템 기초 정의
80
+ - [ ] 컴포넌트 목록 작성
81
+ - [ ] HANDOFF.md 생성
82
+
83
+ ## 다음 스테이지
84
+ → **05-task-management**: 태스크 분해 및 스프린트 계획
85
+
86
+
87
+
88
+