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,402 @@
1
+ # 📋 Snake Game - 태스크 목록
2
+
3
+ > 생성일: 2026-01-21
4
+ > 스테이지: 05-task-management
5
+ > 프로젝트: snake-game
6
+
7
+ ---
8
+
9
+ ## 에픽 구조
10
+
11
+ | 에픽 | 설명 | 태스크 수 |
12
+ |------|------|----------|
13
+ | **E1: 프로젝트 설정** | 초기 환경 구성 | 4 |
14
+ | **E2: 게임 코어** | 핵심 게임 로직 | 6 |
15
+ | **E3: UI 컴포넌트** | React UI 구현 | 5 |
16
+ | **E4: 입력 처리** | 키보드/터치 | 3 |
17
+ | **E5: 확장 기능** | 레벨, 최고점수 | 3 |
18
+ | **E6: 테스트 & 배포** | 테스트, 빌드 | 4 |
19
+
20
+ **총 태스크**: 25개
21
+
22
+ ---
23
+
24
+ ## E1: 프로젝트 설정
25
+
26
+ ### TASK-001: Vite + React + TypeScript 프로젝트 초기화
27
+ - **에픽**: E1-프로젝트 설정
28
+ - **스토리**: 개발자로서, 프로젝트 기반을 구성하고 싶다
29
+ - **우선순위**: Must
30
+ - **예상 시간**: 10분
31
+ - **의존성**: 없음
32
+ - **담당 스테이지**: 06-implementation
33
+ - **완료 조건**:
34
+ - [ ] `npm create vite@latest` 실행
35
+ - [ ] 의존성 설치
36
+ - [ ] 개발 서버 실행 확인
37
+
38
+ ### TASK-002: 타입 정의 (types/index.ts)
39
+ - **에픽**: E1-프로젝트 설정
40
+ - **스토리**: 개발자로서, 타입 안전한 코드를 작성하고 싶다
41
+ - **우선순위**: Must
42
+ - **예상 시간**: 15분
43
+ - **의존성**: TASK-001
44
+ - **담당 스테이지**: 06-implementation
45
+ - **완료 조건**:
46
+ - [ ] Point, Direction, GameStatus 정의
47
+ - [ ] GameState, GameAction 정의
48
+ - [ ] GameConfig 정의
49
+
50
+ ### TASK-003: 상수 정의 (constants/config.ts)
51
+ - **에픽**: E1-프로젝트 설정
52
+ - **스토리**: 개발자로서, 게임 설정값을 한 곳에서 관리하고 싶다
53
+ - **우선순위**: Must
54
+ - **예상 시간**: 10분
55
+ - **의존성**: TASK-002
56
+ - **담당 스테이지**: 06-implementation
57
+ - **완료 조건**:
58
+ - [ ] GAME_CONFIG 정의
59
+ - [ ] COLORS 정의
60
+ - [ ] INITIAL_SNAKE, DIRECTION_VECTORS 정의
61
+
62
+ ### TASK-004: 글로벌 스타일 (styles/index.css)
63
+ - **에픽**: E1-프로젝트 설정
64
+ - **스토리**: 개발자로서, 디자인 토큰을 CSS 변수로 정의하고 싶다
65
+ - **우선순위**: Must
66
+ - **예상 시간**: 15분
67
+ - **의존성**: TASK-001
68
+ - **담당 스테이지**: 06-implementation
69
+ - **완료 조건**:
70
+ - [ ] CSS 변수 (색상, 폰트, 스페이싱) 정의
71
+ - [ ] 기본 리셋 스타일
72
+ - [ ] 폰트 import (Press Start 2P)
73
+
74
+ ---
75
+
76
+ ## E2: 게임 코어
77
+
78
+ ### TASK-005: useGameLoop 훅 구현
79
+ - **에픽**: E2-게임 코어
80
+ - **스토리**: 개발자로서, 60fps 게임 루프를 관리하고 싶다
81
+ - **우선순위**: Must
82
+ - **예상 시간**: 20분
83
+ - **의존성**: TASK-002
84
+ - **담당 스테이지**: 06-implementation
85
+ - **완료 조건**:
86
+ - [ ] requestAnimationFrame 기반 루프
87
+ - [ ] deltaTime 계산
88
+ - [ ] isRunning 토글 기능
89
+ - [ ] cleanup 처리
90
+
91
+ ### TASK-006: gameReducer 구현 (engine/gameReducer.ts)
92
+ - **에픽**: E2-게임 코어
93
+ - **스토리**: 개발자로서, 게임 상태를 예측 가능하게 관리하고 싶다
94
+ - **우선순위**: Must
95
+ - **예상 시간**: 30분
96
+ - **의존성**: TASK-002, TASK-003
97
+ - **담당 스테이지**: 06-implementation
98
+ - **완료 조건**:
99
+ - [ ] 초기 상태 정의
100
+ - [ ] START_GAME, PAUSE_GAME, RESUME_GAME 액션
101
+ - [ ] TICK 액션 (뱀 이동 로직)
102
+ - [ ] CHANGE_DIRECTION 액션
103
+ - [ ] GAME_OVER, RESTART 액션
104
+
105
+ ### TASK-007: collision.ts 구현 (engine/collision.ts)
106
+ - **에픽**: E2-게임 코어
107
+ - **스토리**: 개발자로서, 충돌을 정확하게 감지하고 싶다
108
+ - **우선순위**: Must
109
+ - **예상 시간**: 15분
110
+ - **의존성**: TASK-002, TASK-003
111
+ - **담당 스테이지**: 06-implementation
112
+ - **완료 조건**:
113
+ - [ ] 벽 충돌 감지 (O(1))
114
+ - [ ] 자기 몸 충돌 감지 (O(n))
115
+ - [ ] 먹이 충돌 감지
116
+
117
+ ### TASK-008: renderer.ts 구현 (engine/renderer.ts)
118
+ - **에픽**: E2-게임 코어
119
+ - **스토리**: 개발자로서, 게임을 Canvas에 렌더링하고 싶다
120
+ - **우선순위**: Must
121
+ - **예상 시간**: 25분
122
+ - **의존성**: TASK-002, TASK-003
123
+ - **담당 스테이지**: 06-implementation
124
+ - **완료 조건**:
125
+ - [ ] Canvas 초기화 (clear)
126
+ - [ ] 그리드 렌더링
127
+ - [ ] 뱀 렌더링 (머리/몸통 구분)
128
+ - [ ] 먹이 렌더링
129
+
130
+ ### TASK-009: random.ts 구현 (utils/random.ts)
131
+ - **에픽**: E2-게임 코어
132
+ - **스토리**: 개발자로서, 랜덤 먹이 위치를 생성하고 싶다
133
+ - **우선순위**: Must
134
+ - **예상 시간**: 10분
135
+ - **의존성**: TASK-002
136
+ - **담당 스테이지**: 06-implementation
137
+ - **완료 조건**:
138
+ - [ ] generateRandomPosition 함수
139
+ - [ ] 뱀 몸통과 겹치지 않는 위치 생성
140
+
141
+ ### TASK-010: GameEngine 컴포넌트 통합
142
+ - **에픽**: E2-게임 코어
143
+ - **스토리**: 개발자로서, 게임 로직과 렌더링을 통합하고 싶다
144
+ - **우선순위**: Must
145
+ - **예상 시간**: 30분
146
+ - **의존성**: TASK-005, TASK-006, TASK-007, TASK-008
147
+ - **담당 스테이지**: 06-implementation
148
+ - **완료 조건**:
149
+ - [ ] useReducer로 상태 관리
150
+ - [ ] useGameLoop으로 틱 처리
151
+ - [ ] CanvasLayer와 UIOverlay 조합
152
+ - [ ] 기본 게임 플레이 동작
153
+
154
+ ---
155
+
156
+ ## E3: UI 컴포넌트
157
+
158
+ ### TASK-011: CanvasLayer 컴포넌트
159
+ - **에픽**: E3-UI 컴포넌트
160
+ - **스토리**: 사용자로서, 게임 화면을 보고 싶다
161
+ - **우선순위**: Must
162
+ - **예상 시간**: 15분
163
+ - **의존성**: TASK-008
164
+ - **담당 스테이지**: 06-implementation
165
+ - **완료 조건**:
166
+ - [ ] Canvas ref 관리
167
+ - [ ] renderer 함수 호출
168
+ - [ ] 반응형 크기 처리
169
+
170
+ ### TASK-012: ScoreBoard 컴포넌트
171
+ - **에픽**: E3-UI 컴포넌트
172
+ - **스토리**: 사용자로서, 현재 점수와 최고 점수를 보고 싶다
173
+ - **우선순위**: Must
174
+ - **예상 시간**: 15분
175
+ - **의존성**: TASK-004
176
+ - **담당 스테이지**: 06-implementation
177
+ - **완료 조건**:
178
+ - [ ] 현재 점수 표시
179
+ - [ ] 최고 점수 표시
180
+ - [ ] 점수 증가 애니메이션
181
+
182
+ ### TASK-013: StartScreen 컴포넌트
183
+ - **에픽**: E3-UI 컴포넌트
184
+ - **스토리**: 사용자로서, 게임 시작 전 화면을 보고 싶다
185
+ - **우선순위**: Should
186
+ - **예상 시간**: 20분
187
+ - **의존성**: TASK-004
188
+ - **담당 스테이지**: 06-implementation
189
+ - **완료 조건**:
190
+ - [ ] 로고 표시 (네온 글로우)
191
+ - [ ] 최고 점수 표시
192
+ - [ ] Start 버튼
193
+
194
+ ### TASK-014: GameOverModal 컴포넌트
195
+ - **에픽**: E3-UI 컴포넌트
196
+ - **스토리**: 사용자로서, 게임 오버 시 결과를 보고 싶다
197
+ - **우선순위**: Must
198
+ - **예상 시간**: 20분
199
+ - **의존성**: TASK-004
200
+ - **담당 스테이지**: 06-implementation
201
+ - **완료 조건**:
202
+ - [ ] 모달 오버레이
203
+ - [ ] 최종 점수 표시
204
+ - [ ] NEW HIGH SCORE 표시 (조건부)
205
+ - [ ] Play Again 버튼
206
+
207
+ ### TASK-015: MobileControls 컴포넌트
208
+ - **에픽**: E3-UI 컴포넌트
209
+ - **스토리**: 모바일 사용자로서, 터치로 뱀을 조작하고 싶다
210
+ - **우선순위**: Should
211
+ - **예상 시간**: 25분
212
+ - **의존성**: TASK-004
213
+ - **담당 스테이지**: 06-implementation
214
+ - **완료 조건**:
215
+ - [ ] D-Pad 레이아웃
216
+ - [ ] 터치 이벤트 처리
217
+ - [ ] 반응형 표시 (모바일만)
218
+
219
+ ---
220
+
221
+ ## E4: 입력 처리
222
+
223
+ ### TASK-016: useKeyboard 훅 구현
224
+ - **에픽**: E4-입력 처리
225
+ - **스토리**: 사용자로서, 방향키로 뱀을 조작하고 싶다
226
+ - **우선순위**: Must
227
+ - **예상 시간**: 20분
228
+ - **의존성**: TASK-002
229
+ - **담당 스테이지**: 06-implementation
230
+ - **완료 조건**:
231
+ - [ ] Arrow Keys / WASD 매핑
232
+ - [ ] ESC/P 일시정지
233
+ - [ ] Enter/Space 재시작
234
+ - [ ] 역방향 입력 무시
235
+
236
+ ### TASK-017: useSwipe 훅 구현
237
+ - **에픽**: E4-입력 처리
238
+ - **스토리**: 모바일 사용자로서, 스와이프로 뱀을 조작하고 싶다
239
+ - **우선순위**: Should
240
+ - **예상 시간**: 25분
241
+ - **의존성**: TASK-002
242
+ - **담당 스테이지**: 06-implementation
243
+ - **완료 조건**:
244
+ - [ ] touchstart/touchend 이벤트
245
+ - [ ] 스와이프 방향 감지 (threshold 50px)
246
+ - [ ] passive 리스너
247
+
248
+ ### TASK-018: 입력 통합 (GameEngine)
249
+ - **에픽**: E4-입력 처리
250
+ - **스토리**: 개발자로서, 모든 입력을 통합 관리하고 싶다
251
+ - **우선순위**: Must
252
+ - **예상 시간**: 15분
253
+ - **의존성**: TASK-010, TASK-016, TASK-017
254
+ - **담당 스테이지**: 06-implementation
255
+ - **완료 조건**:
256
+ - [ ] useKeyboard 연결
257
+ - [ ] useSwipe 연결 (모바일)
258
+ - [ ] MobileControls 연결
259
+
260
+ ---
261
+
262
+ ## E5: 확장 기능
263
+
264
+ ### TASK-019: 레벨 시스템 구현
265
+ - **에픽**: E5-확장 기능
266
+ - **스토리**: 사용자로서, 점수가 올라가면 게임이 빨라지길 원한다
267
+ - **우선순위**: Should
268
+ - **예상 시간**: 20분
269
+ - **의존성**: TASK-006
270
+ - **담당 스테이지**: 06-implementation
271
+ - **완료 조건**:
272
+ - [ ] 레벨 상태 추가
273
+ - [ ] 50점마다 레벨업
274
+ - [ ] 레벨업 시 속도 증가
275
+
276
+ ### TASK-020: useHighScore 훅 구현
277
+ - **에픽**: E5-확장 기능
278
+ - **스토리**: 사용자로서, 최고 점수가 저장되길 원한다
279
+ - **우선순위**: Should
280
+ - **예상 시간**: 15분
281
+ - **의존성**: TASK-002
282
+ - **담당 스테이지**: 06-implementation
283
+ - **완료 조건**:
284
+ - [ ] localStorage 저장/불러오기
285
+ - [ ] 최고 점수 갱신 함수
286
+ - [ ] 에러 핸들링 (try-catch)
287
+
288
+ ### TASK-021: 일시정지 기능 구현
289
+ - **에픽**: E5-확장 기능
290
+ - **스토리**: 사용자로서, 게임을 일시정지하고 싶다
291
+ - **우선순위**: Should
292
+ - **예상 시간**: 15분
293
+ - **의존성**: TASK-006, TASK-016
294
+ - **담당 스테이지**: 06-implementation
295
+ - **완료 조건**:
296
+ - [ ] PAUSE/RESUME 상태 전환
297
+ - [ ] PauseOverlay 컴포넌트
298
+ - [ ] Resume/Quit 버튼
299
+
300
+ ---
301
+
302
+ ## E6: 테스트 & 배포
303
+
304
+ ### TASK-022: 단위 테스트 작성
305
+ - **에픽**: E6-테스트 & 배포
306
+ - **스토리**: 개발자로서, 코드 품질을 보장하고 싶다
307
+ - **우선순위**: Should
308
+ - **예상 시간**: 30분
309
+ - **의존성**: E2 전체
310
+ - **담당 스테이지**: 09-testing
311
+ - **완료 조건**:
312
+ - [ ] collision.ts 테스트
313
+ - [ ] gameReducer 테스트
314
+ - [ ] random.ts 테스트
315
+ - [ ] 커버리지 80%+
316
+
317
+ ### TASK-023: E2E 테스트 작성
318
+ - **에픽**: E6-테스트 & 배포
319
+ - **스토리**: 개발자로서, 전체 게임 플로우를 검증하고 싶다
320
+ - **우선순위**: Could
321
+ - **예상 시간**: 30분
322
+ - **의존성**: TASK-022
323
+ - **담당 스테이지**: 09-testing
324
+ - **완료 조건**:
325
+ - [ ] 게임 시작 → 플레이 → 게임오버 플로우
326
+ - [ ] 점수 증가 검증
327
+ - [ ] 모바일 터치 테스트
328
+
329
+ ### TASK-024: 빌드 설정 및 최적화
330
+ - **에픽**: E6-테스트 & 배포
331
+ - **스토리**: 개발자로서, 최적화된 프로덕션 빌드를 원한다
332
+ - **우선순위**: Must
333
+ - **예상 시간**: 15분
334
+ - **의존성**: E3 전체
335
+ - **담당 스테이지**: 10-deployment
336
+ - **완료 조건**:
337
+ - [ ] Vite 빌드 설정
338
+ - [ ] 번들 크기 < 200KB
339
+ - [ ] 소스맵 설정
340
+
341
+ ### TASK-025: 배포 (GitHub Pages / Vercel)
342
+ - **에픽**: E6-테스트 & 배포
343
+ - **스토리**: 사용자로서, 웹에서 게임을 플레이하고 싶다
344
+ - **우선순위**: Must
345
+ - **예상 시간**: 20분
346
+ - **의존성**: TASK-024
347
+ - **담당 스테이지**: 10-deployment
348
+ - **완료 조건**:
349
+ - [ ] 배포 플랫폼 선택
350
+ - [ ] CI/CD 설정
351
+ - [ ] 배포 URL 확인
352
+
353
+ ---
354
+
355
+ ## 태스크 요약
356
+
357
+ | 우선순위 | 개수 | 예상 시간 |
358
+ |---------|------|----------|
359
+ | Must | 17 | ~5시간 |
360
+ | Should | 7 | ~2시간 |
361
+ | Could | 1 | ~30분 |
362
+ | **총계** | **25** | **~7.5시간** |
363
+
364
+ ---
365
+
366
+ ## 의존성 그래프 (간략)
367
+
368
+ ```
369
+ TASK-001 (프로젝트 초기화)
370
+
371
+ ├─► TASK-002 (타입 정의)
372
+ │ │
373
+ │ ├─► TASK-003 (상수 정의)
374
+ │ │ │
375
+ │ │ └─► TASK-006 (gameReducer)
376
+ │ │ │
377
+ │ │ └─► TASK-010 (GameEngine)
378
+ │ │
379
+ │ ├─► TASK-005 (useGameLoop) ──► TASK-010
380
+ │ │
381
+ │ ├─► TASK-007 (collision) ──► TASK-010
382
+ │ │
383
+ │ └─► TASK-008 (renderer) ──► TASK-011 (CanvasLayer)
384
+
385
+ └─► TASK-004 (글로벌 스타일)
386
+
387
+ ├─► TASK-012 (ScoreBoard)
388
+ ├─► TASK-013 (StartScreen)
389
+ ├─► TASK-014 (GameOverModal)
390
+ └─► TASK-015 (MobileControls)
391
+ ```
392
+
393
+ ---
394
+
395
+ ## ✅ 태스크 체크리스트
396
+
397
+ - [x] 에픽 구조 정의
398
+ - [x] 25개 태스크 분해
399
+ - [x] 우선순위 지정 (MoSCoW)
400
+ - [x] 의존성 맵핑
401
+ - [x] 예상 시간 산정
402
+ - [x] 담당 스테이지 지정
@@ -0,0 +1,54 @@
1
+ # AI 협업 프롬프트 - Task Management
2
+
3
+ ## 협업 모드: Sequential Review
4
+
5
+ 이 스테이지에서는 **순차적 리뷰** 모드를 사용하여 태스크 분해의 완전성을 보장합니다.
6
+
7
+ ### 참여 모델
8
+ - **ClaudeCode**: 태스크 분해, 의존성 분석
9
+
10
+ ### 협업 프롬프트
11
+
12
+ ```
13
+ # 단일 모델이지만 반복 검토
14
+ /collaborate --mode sequential --chain "claudecode:decompose -> claudecode:review"
15
+ ```
16
+
17
+ ### 작업 흐름
18
+
19
+ 1. **초기 분해**: 기능 → 에픽 → 스토리 → 태스크
20
+ 2. **의존성 분석**: 태스크 간 관계 파악
21
+ 3. **검토 및 조정**: 누락/중복 태스크 식별
22
+
23
+ ### 태스크 품질 기준
24
+
25
+ | 기준 | 설명 |
26
+ |------|------|
27
+ | 원자성 | 더 이상 분해 불가 |
28
+ | 명확성 | 완료 조건 명확 |
29
+ | 독립성 | 최소한의 의존성 |
30
+ | 추정 가능 | 시간 추정 가능 |
31
+
32
+ ### Notion 통합
33
+
34
+ 태스크 생성 시 반드시 준수:
35
+ - 하나씩 순차적으로 생성
36
+ - Status 필드 필수 (기본값: To Do)
37
+ - Order 필드로 순서 지정
38
+
39
+ ### 출력 형식
40
+
41
+ ```markdown
42
+ ## 태스크 분해 결과
43
+
44
+ ### 에픽 1: [에픽명]
45
+ #### 스토리 1.1: [스토리명]
46
+ - TASK-001: [태스크] (2h)
47
+ - TASK-002: [태스크] (4h)
48
+ ...
49
+
50
+ ### 의존성 그래프
51
+ TASK-001 → TASK-003
52
+ TASK-002 → TASK-004
53
+ ...
54
+ ```
@@ -0,0 +1,66 @@
1
+ # 산출물 검증 프롬프트 - Task Management
2
+
3
+ ## 검증 대상
4
+
5
+ | 산출물 | 필수 조건 | 검증 방법 |
6
+ |--------|----------|----------|
7
+ | `tasks.md` | 전체 태스크 목록 | 구조 확인 |
8
+ | `sprint_plan.md` | 스프린트 3개+ | 수량 확인 |
9
+ | `milestones.md` | 산출물 정의 | 구조 확인 |
10
+ | `HANDOFF.md` | 첫 스프린트 태스크 | 항목 확인 |
11
+
12
+ ## 검증 명령
13
+
14
+ ```bash
15
+ /validate --stage 05-task-management
16
+ ```
17
+
18
+ ## 품질 기준
19
+
20
+ ### tasks.md
21
+ - [ ] MoSCoW 분류 적용
22
+ - [ ] 각 태스크에 예상 시간
23
+ - [ ] 의존성 명시
24
+ - [ ] 담당 스테이지 지정
25
+
26
+ ### sprint_plan.md
27
+ - [ ] 스프린트 3개 이상
28
+ - [ ] 각 스프린트 용량 계산
29
+ - [ ] 버퍼 시간 포함
30
+ - [ ] 우선순위 기반 할당
31
+
32
+ ### milestones.md
33
+ - [ ] 마일스톤별 산출물 정의
34
+ - [ ] 성공 기준 명시
35
+ - [ ] 검증 방법 포함
36
+
37
+ ### HANDOFF.md
38
+ - [ ] 스프린트 1 태스크 목록
39
+ - [ ] 의존성 그래프
40
+ - [ ] 우선 구현 항목
41
+
42
+ ## 자동 검증 스크립트
43
+
44
+ ```bash
45
+ # 태스크 수 확인
46
+ grep -c "^- TASK-" outputs/tasks.md
47
+
48
+ # 스프린트 수 확인
49
+ grep -c "^## Sprint" outputs/sprint_plan.md
50
+
51
+ # 마일스톤 수 확인
52
+ grep -c "^## Milestone" outputs/milestones.md
53
+
54
+ # 의존성 그래프 존재 확인
55
+ grep -c "→" outputs/tasks.md
56
+ ```
57
+
58
+ ## 태스크 품질 체크
59
+
60
+ ```bash
61
+ # 예상 시간 누락 확인
62
+ grep -E "^- TASK-" outputs/tasks.md | grep -v -E "\([0-9]+h\)"
63
+
64
+ # 의존성 누락 확인
65
+ grep -E "^- TASK-" outputs/tasks.md | grep -v "의존성"
66
+ ```
@@ -0,0 +1,176 @@
1
+ # Notion 연동 가이드
2
+
3
+ > ax-templates-3 태스크 관리 - Notion 데이터베이스 연동
4
+
5
+ ## 주의사항 (Issue #5, #6, #8, #16 해결)
6
+
7
+ ### ⚠️ 순차 생성 필수
8
+
9
+ Notion API로 태스크를 생성할 때 **반드시 하나씩 순차적으로** 생성해야 합니다.
10
+
11
+ ```
12
+ ❌ 잘못된 방식 (병렬 생성)
13
+ Promise.all([
14
+ createTask("태스크 1"),
15
+ createTask("태스크 2"),
16
+ createTask("태스크 3")
17
+ ])
18
+
19
+ ✅ 올바른 방식 (순차 생성)
20
+ await createTask("태스크 1", { order: 1 })
21
+ await createTask("태스크 2", { order: 2 })
22
+ await createTask("태스크 3", { order: 3 })
23
+ ```
24
+
25
+ ### ⚠️ Status 필드 필수
26
+
27
+ 모든 태스크는 반드시 `Status` 필드를 포함해야 합니다.
28
+ - 기본값: `To Do`
29
+ - 생성 시 명시적으로 지정
30
+
31
+ ### ⚠️ Order 필드로 정렬
32
+
33
+ Notion 데이터베이스 View 정렬은 수동으로 설정해야 합니다:
34
+
35
+ 1. 데이터베이스 View 열기
36
+ 2. `Sort` 클릭
37
+ 3. `Order` 필드 선택
38
+ 4. `Ascending` 정렬
39
+
40
+ ---
41
+
42
+ ## 데이터베이스 생성 절차
43
+
44
+ ### 1. 데이터베이스 생성
45
+
46
+ ```javascript
47
+ // MCP Notion 도구 사용 예시
48
+ await notion.createDatabase({
49
+ parent: { page_id: "프로젝트_페이지_ID" },
50
+ title: [{ text: { content: "프로젝트명 Tasks" } }],
51
+ properties: {
52
+ "Task Name": { title: {} },
53
+ "Status": {
54
+ select: {
55
+ options: [
56
+ { name: "To Do", color: "gray" },
57
+ { name: "In Progress", color: "blue" },
58
+ { name: "Review", color: "yellow" },
59
+ { name: "Done", color: "green" },
60
+ { name: "Blocked", color: "red" }
61
+ ]
62
+ }
63
+ },
64
+ "Priority": {
65
+ select: {
66
+ options: [
67
+ { name: "High", color: "red" },
68
+ { name: "Medium", color: "yellow" },
69
+ { name: "Low", color: "green" }
70
+ ]
71
+ }
72
+ },
73
+ "Order": { number: { format: "number" } },
74
+ "Sprint": {
75
+ select: {
76
+ options: [
77
+ { name: "Sprint 1" },
78
+ { name: "Sprint 2" },
79
+ { name: "Sprint 3" }
80
+ ]
81
+ }
82
+ },
83
+ "Assignee": { rich_text: {} },
84
+ "Estimate": { rich_text: {} },
85
+ "Due Date": { date: {} },
86
+ "Depends On": { rich_text: {} },
87
+ "Stage": {
88
+ select: {
89
+ options: [
90
+ { name: "06-implementation" },
91
+ { name: "07-refactoring" },
92
+ { name: "08-qa" },
93
+ { name: "09-testing" }
94
+ ]
95
+ }
96
+ }
97
+ }
98
+ })
99
+ ```
100
+
101
+ ### 2. 태스크 생성 (순차적)
102
+
103
+ ```javascript
104
+ // 태스크 목록
105
+ const tasks = [
106
+ { name: "프로젝트 초기 설정", priority: "High" },
107
+ { name: "기본 UI 컴포넌트 구현", priority: "High" },
108
+ { name: "API 연동", priority: "Medium" },
109
+ // ...
110
+ ];
111
+
112
+ // 순차 생성 (중요!)
113
+ for (let i = 0; i < tasks.length; i++) {
114
+ await notion.createPage({
115
+ parent: { database_id: "데이터베이스_ID" },
116
+ properties: {
117
+ "Task Name": { title: [{ text: { content: tasks[i].name } }] },
118
+ "Status": { select: { name: "To Do" } }, // 필수!
119
+ "Priority": { select: { name: tasks[i].priority } },
120
+ "Order": { number: i + 1 } // 순서 보장!
121
+ }
122
+ });
123
+
124
+ // 순서 보장을 위한 짧은 대기
125
+ await new Promise(resolve => setTimeout(resolve, 100));
126
+ }
127
+ ```
128
+
129
+ ---
130
+
131
+ ## View 설정 (수동)
132
+
133
+ Notion UI에서 직접 설정해야 합니다:
134
+
135
+ ### Board View 설정
136
+ 1. `+ Add a view` 클릭
137
+ 2. `Board` 선택
138
+ 3. `Group by` → `Status` 선택
139
+
140
+ ### List View 정렬 설정
141
+ 1. View에서 `...` 클릭
142
+ 2. `Sort` 선택
143
+ 3. `+ Add a sort`
144
+ 4. `Order` → `Ascending` 선택
145
+
146
+ ### 필터 설정 (선택)
147
+ 1. `Filter` 클릭
148
+ 2. `Status` `is not` `Done` 추가
149
+
150
+ ---
151
+
152
+ ## 체크리스트
153
+
154
+ - [ ] 데이터베이스 생성 완료
155
+ - [ ] Status 필드 포함 확인
156
+ - [ ] Order 필드 포함 확인
157
+ - [ ] 태스크 순차 생성 완료
158
+ - [ ] Board View 설정 (Status 그룹화)
159
+ - [ ] List View 정렬 설정 (Order 오름차순)
160
+
161
+ ---
162
+
163
+ ## 문제 해결
164
+
165
+ ### 태스크 순서가 뒤죽박죽인 경우
166
+ 1. List View에서 `Order` 정렬 확인
167
+ 2. Order 값이 누락된 태스크 수정
168
+ 3. 필요시 Order 값 재할당
169
+
170
+ ### Status 필드가 없는 경우
171
+ 1. 데이터베이스 속성에서 `Status` 추가
172
+ 2. 기존 태스크에 Status 값 할당
173
+
174
+ ### View 정렬이 저장되지 않는 경우
175
+ 1. 해당 View가 저장된 View인지 확인
176
+ 2. `...` → `Lock database` 해제 확인