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,110 @@
1
+ # HANDOFF: 01-brainstorm โ†’ 02-research
2
+
3
+ > ์ƒ์„ฑ์ผ: 2026-01-21
4
+ > ํ”„๋กœ์ ํŠธ: snake-game
5
+ > ํ˜„์žฌ ์Šคํ…Œ์ด์ง€: 01-brainstorm (์™„๋ฃŒ)
6
+ > ๋‹ค์Œ ์Šคํ…Œ์ด์ง€: 02-research
7
+
8
+ ---
9
+
10
+ ## โœ… ์™„๋ฃŒ๋œ ์ž‘์—…
11
+
12
+ - [x] ํ”„๋กœ์ ํŠธ ๋ธŒ๋ฆฌํ”„ ์ž‘์„ฑ (`inputs/project_brief.md`)
13
+ - [x] ํ•ต์‹ฌ ๊ธฐ๋Šฅ ์•„์ด๋””์–ด 12๊ฐœ ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ
14
+ - [x] ์‚ฌ์šฉ์ž ํŽ˜๋ฅด์†Œ๋‚˜ 3๊ฐœ ์ •์˜
15
+ - [x] ์œ ์‚ฌ ํ”„๋กœ์ ํŠธ ์‚ฌ๋ก€ ์กฐ์‚ฌ
16
+ - [x] ์žฅ๋‹จ์  ๋ถ„์„ ์™„๋ฃŒ
17
+ - [x] MVP ๋ฒ”์œ„ ์ œ์•ˆ
18
+
19
+ ---
20
+
21
+ ## ๐Ÿ“‹ ํ•ต์‹ฌ ๊ฒฐ์ •์‚ฌํ•ญ
22
+
23
+ ### 1. ๊ธฐ์ˆ  ์Šคํƒ ๋ฐฉํ–ฅ
24
+ - **๋ Œ๋”๋ง**: Canvas (์„ฑ๋Šฅ ์šฐ์„ , ๋ชจ๋ฐ”์ผ ์ง€์›)
25
+ - **์ƒํƒœ๊ด€๋ฆฌ**: useReducer + Custom Hook
26
+ - **๊ฒŒ์ž„ ๋ฃจํ”„**: requestAnimationFrame
27
+
28
+ ### 2. MVP ๊ธฐ๋Šฅ ๋ฒ”์œ„
29
+ | ์šฐ์„ ์ˆœ์œ„ | ๊ธฐ๋Šฅ |
30
+ |---------|------|
31
+ | ๐Ÿ”ด ํ•„์ˆ˜ | ๊ธฐ๋ณธ ์กฐ์ž‘, ๋จน์ด ์‹œ์Šคํ…œ, ์ถฉ๋Œ ๊ฐ์ง€, ์ ์ˆ˜, ์žฌ์‹œ์ž‘ |
32
+ | ๐ŸŸก ์ค‘์š” | ๋ ˆ๋ฒจ ์‹œ์Šคํ…œ, ํ•˜์ด์Šค์ฝ”์–ด ์ €์žฅ, ์ผ์‹œ์ •์ง€, ๋ชจ๋ฐ”์ผ ํ„ฐ์น˜ |
33
+ | ๐ŸŸข ์„ ํƒ | Combo System, Portal Edges, Different Food |
34
+
35
+ ### 3. ํƒ€๊ฒŸ ์‚ฌ์šฉ์ž (์šฐ์„ ์ˆœ์œ„)
36
+ 1. **Persona A**: ์บ์ฃผ์–ผ ๊ฒŒ์ด๋จธ (๋ชจ๋ฐ”์ผ, 5-10๋ถ„ ํ”Œ๋ ˆ์ด)
37
+ 2. **Persona B**: ๊ฒฝ์Ÿ์  ๊ฒŒ์ด๋จธ (๋ฐ์Šคํฌํ†ฑ, ํ•˜์ด์Šค์ฝ”์–ด ์ถ”๊ตฌ)
38
+ 3. **Persona C**: ๋ ˆํŠธ๋กœ ํŒฌ (ํด๋ž˜์‹ ์Šคํƒ€์ผ ์„ ํ˜ธ)
39
+
40
+ ---
41
+
42
+ ## ๐Ÿ“ ์ƒ์„ฑ๋œ ์‚ฐ์ถœ๋ฌผ
43
+
44
+ | ํŒŒ์ผ | ์„ค๋ช… |
45
+ |------|------|
46
+ | `inputs/project_brief.md` | ํ”„๋กœ์ ํŠธ ๊ฐœ์š” ๋ฐ ์š”๊ตฌ์‚ฌํ•ญ |
47
+ | `outputs/ideas.md` | ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ ์•„์ด๋””์–ด (12๊ฐœ) |
48
+ | `outputs/requirements_analysis.md` | ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ |
49
+ | `HANDOFF.md` | ์ด ๋ฌธ์„œ |
50
+
51
+ ---
52
+
53
+ ## ๐Ÿ”œ ๋‹ค์Œ ์Šคํ…Œ์ด์ง€ ์ฆ‰์‹œ ์‹คํ–‰ ์ž‘์—…
54
+
55
+ ### 02-research์—์„œ ์กฐ์‚ฌํ•  ํ•ญ๋ชฉ
56
+
57
+ 1. **Canvas ๊ฒŒ์ž„ ๋ฃจํ”„ ๊ตฌํ˜„ ๋ฐฉ๋ฒ•**
58
+ - requestAnimationFrame vs setInterval
59
+ - ์ตœ์ ํ™” ๊ธฐ๋ฒ• (๋”๋ธ” ๋ฒ„ํผ๋ง)
60
+
61
+ 2. **React + Canvas ํ†ตํ•ฉ ํŒจํ„ด**
62
+ - useRef๋กœ Canvas ์ ‘๊ทผ
63
+ - Canvas ๋ฆฌ๋ Œ๋”๋ง ์ตœ์†Œํ™”
64
+
65
+ 3. **๋ชจ๋ฐ”์ผ ํ„ฐ์น˜ ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ**
66
+ - touchstart/touchmove/touchend
67
+ - ์Šค์™€์ดํ”„ ๋ฐฉํ–ฅ ๊ฐ์ง€ ๋กœ์ง
68
+
69
+ 4. **localStorage ํ•˜์ด์Šค์ฝ”์–ด ์ €์žฅ**
70
+ - ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ ์„ค๊ณ„
71
+ - ๋ณด์•ˆ ๊ณ ๋ ค์‚ฌํ•ญ
72
+
73
+ 5. **์ถฉ๋Œ ๊ฐ์ง€ ์•Œ๊ณ ๋ฆฌ์ฆ˜**
74
+ - O(n) ์ž๊ธฐ ๋ชธ ์ถฉ๋Œ
75
+ - ์ตœ์ ํ™” ๋ฐฉ์•ˆ
76
+
77
+ ---
78
+
79
+ ## โš ๏ธ ์ฃผ์˜์‚ฌํ•ญ
80
+
81
+ 1. **์™ธ๋ถ€ ๊ฒŒ์ž„ ์—”์ง„ ๋ฏธ์‚ฌ์šฉ**: Phaser, PixiJS ๋“ฑ ๊ธˆ์ง€
82
+ 2. **์ˆœ์ˆ˜ React ๊ตฌํ˜„**: jQuery ๋ฏธ์‚ฌ์šฉ
83
+ 3. **์ •์  ๋ฐฐํฌ ๊ฐ€๋Šฅ**: ๋ฐฑ์—”๋“œ ์„œ๋ฒ„ ์—†์Œ
84
+
85
+ ---
86
+
87
+ ## ๐Ÿ“Š AI ํ˜ธ์ถœ ๊ธฐ๋ก
88
+
89
+ | AI | ์‹œ๊ฐ„ | ํ”„๋กฌํ”„ํŠธ | ๊ฒฐ๊ณผ | ์ƒํƒœ |
90
+ |----|------|---------|------|------|
91
+ | Gemini | 11:58 | Snake Game ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ | 12๊ฐœ ์•„์ด๋””์–ด, 3 ํŽ˜๋ฅด์†Œ๋‚˜ | โœ… |
92
+ | ClaudeCode | 11:57 | ๊ฒฐ๊ณผ ๊ตฌ์กฐํ™” | ideas.md, HANDOFF.md | โœ… |
93
+
94
+ ---
95
+
96
+ ## ๐Ÿš€ ๋‹ค์Œ ๋‹จ๊ณ„
97
+
98
+ ```bash
99
+ # ๋‹ค์Œ ์Šคํ…Œ์ด์ง€ ์‹คํ–‰
100
+ /run-stage 02-research
101
+
102
+ # ๋˜๋Š”
103
+ /research
104
+ ```
105
+
106
+ ---
107
+
108
+ **์ƒ์„ฑ์ž**: ClaudeCode
109
+ **๊ฒ€ํ† ์ž**: -
110
+ **์Šน์ธ**: ๋Œ€๊ธฐ
@@ -0,0 +1,112 @@
1
+ # Stage Handoff: 01-brainstorm โ†’ 02-research
2
+
3
+ **์ƒ์„ฑ์ผ**: {{TIMESTAMP}}
4
+ **์ƒ์„ฑ์ž**: {{MODEL}}
5
+ **์†Œ์š” ์‹œ๊ฐ„**: {{DURATION}}
6
+
7
+ ---
8
+
9
+ ## ์™„๋ฃŒ๋œ ์ž‘์—…
10
+
11
+ - [ ] ํ”„๋กœ์ ํŠธ ๋ธŒ๋ฆฌํ”„ ๋ถ„์„
12
+ - [ ] ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ ({{IDEA_COUNT}}๊ฐœ ์•„์ด๋””์–ด)
13
+ - [ ] ์‚ฌ์šฉ์ž ํŽ˜๋ฅด์†Œ๋‚˜ ์ƒ์„ฑ ({{PERSONA_COUNT}}๊ฐœ)
14
+ - [ ] ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„
15
+ - [ ] MVP ๋ฒ”์œ„ ์ •์˜
16
+ - [ ] HANDOFF.md ์ƒ์„ฑ
17
+
18
+ ---
19
+
20
+ ## ๋‹ค์Œ ์—์ด์ „ํŠธ๋ฅผ ์œ„ํ•œ ์ปจํ…์ŠคํŠธ
21
+
22
+ ### ํ•ต์‹ฌ ๊ฒฐ์ •์‚ฌํ•ญ
23
+
24
+ | ๊ฒฐ์ • | ์ด์œ  | ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ์Œ |
25
+ |------|------|----------------|
26
+ | {{DECISION_1}} | {{REASON_1}} | Yes/No |
27
+ | {{DECISION_2}} | {{REASON_2}} | Yes/No |
28
+
29
+ ### ์„ฑ๊ณตํ•œ ์ ‘๊ทผ๋ฒ•
30
+ - {{SUCCESSFUL_APPROACH_1}}
31
+ - {{SUCCESSFUL_APPROACH_2}}
32
+
33
+ ### ์‹คํŒจํ•œ ์ ‘๊ทผ๋ฒ•
34
+ - {{FAILED_APPROACH_1}}: {{FAILURE_REASON_1}}
35
+
36
+ ### ์šฐ์„ ์ˆœ์œ„ ์•„์ด๋””์–ด (Top 5)
37
+ 1. **{{IDEA_1}}** - {{IDEA_1_VALUE}}
38
+ 2. **{{IDEA_2}}** - {{IDEA_2_VALUE}}
39
+ 3. **{{IDEA_3}}** - {{IDEA_3_VALUE}}
40
+ 4. **{{IDEA_4}}** - {{IDEA_4_VALUE}}
41
+ 5. **{{IDEA_5}}** - {{IDEA_5_VALUE}}
42
+
43
+ ### MVP ํ•ต์‹ฌ ๊ธฐ๋Šฅ
44
+ 1. {{MVP_FEATURE_1}}
45
+ 2. {{MVP_FEATURE_2}}
46
+ 3. {{MVP_FEATURE_3}}
47
+
48
+ ---
49
+
50
+ ## ์ƒ์„ฑ๋œ ์‚ฐ์ถœ๋ฌผ
51
+
52
+ | ํŒŒ์ผ | ์„ค๋ช… | ์œ„์น˜ |
53
+ |------|------|------|
54
+ | ideas.md | ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ ์•„์ด๋””์–ด | `outputs/ideas.md` |
55
+ | requirements_analysis.md | ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ | `outputs/requirements_analysis.md` |
56
+ | personas.md | ์‚ฌ์šฉ์ž ํŽ˜๋ฅด์†Œ๋‚˜ | `outputs/personas.md` (์„ ํƒ) |
57
+
58
+ ---
59
+
60
+ ## 02-research ์Šคํ…Œ์ด์ง€ ๊ฐ€์ด๋“œ
61
+
62
+ ### ์ฆ‰์‹œ ์‹คํ–‰ํ•  ์ž‘์—…
63
+ 1. `outputs/requirements_analysis.md` ์ฝ๊ณ  MVP ๋ฒ”์œ„ ํ™•์ธ
64
+ 2. ์šฐ์„ ์ˆœ์œ„ ์•„์ด๋””์–ด ๊ธฐ์ˆ  ์Šคํƒ ๋ฆฌ์„œ์น˜
65
+ 3. ๊ฒฝ์Ÿ์‚ฌ ์‹ฌ์ธต ๋ถ„์„
66
+
67
+ ### ๋ฆฌ์„œ์น˜ ์šฐ์„ ์ˆœ์œ„
68
+ 1. {{RESEARCH_PRIORITY_1}}
69
+ 2. {{RESEARCH_PRIORITY_2}}
70
+ 3. {{RESEARCH_PRIORITY_3}}
71
+
72
+ ### ๊ฒ€์ฆ ํ•„์š” ๊ฐ€์ •
73
+ - {{ASSUMPTION_1}}
74
+ - {{ASSUMPTION_2}}
75
+
76
+ ### ๊ถŒ์žฅ MCP ์„œ๋ฒ„
77
+ - `firecrawl`: ์›น ํฌ๋กค๋ง
78
+ - `exa`: AI ๊ฒ€์ƒ‰
79
+ - `context7`: ๋ฌธ์„œ ๊ฒ€์ƒ‰
80
+
81
+ ---
82
+
83
+ ## ์ฒดํฌํฌ์ธํŠธ ์ฐธ์กฐ
84
+ > ์ด ์Šคํ…Œ์ด์ง€๋Š” ์ฒดํฌํฌ์ธํŠธ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
85
+
86
+ ---
87
+
88
+ ## AI ํ˜ธ์ถœ ๊ธฐ๋ก
89
+
90
+ | AI | ํ˜ธ์ถœ ์‹œ๊ฐ„ | ํ”„๋กฌํ”„ํŠธ | ๊ฒฐ๊ณผ | ์ƒํƒœ |
91
+ |----|----------|---------|------|------|
92
+ | {{AI_1}} | {{TIME_1}} | {{PROMPT_1}} | {{OUTPUT_1}} | {{STATUS_1}} |
93
+ | {{AI_2}} | {{TIME_2}} | {{PROMPT_2}} | {{OUTPUT_2}} | {{STATUS_2}} |
94
+
95
+ > ์„ค์ •: `config/ai_logging.yaml`
96
+
97
+ ---
98
+
99
+ ## ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ
100
+
101
+ ```yaml
102
+ stage: "01-brainstorm"
103
+ status: "completed"
104
+ next_stage: "02-research"
105
+ models_used:
106
+ - gemini
107
+ - claudecode
108
+ tokens_used: {{TOKENS_USED}}
109
+ outputs_generated:
110
+ - ideas.md
111
+ - requirements_analysis.md
112
+ ```
@@ -0,0 +1,97 @@
1
+ # Stage 01: Brainstorming
2
+
3
+ ๋ฐœ์‚ฐ์  ์•„์ด๋””์–ด ์ƒ์„ฑ ๋ฐ ์š”๊ตฌ์‚ฌํ•ญ ํƒ์ƒ‰
4
+
5
+ ## ๊ฐœ์š”
6
+
7
+ ์ด ์Šคํ…Œ์ด์ง€๋Š” ํ”„๋กœ์ ํŠธ์˜ ์‹œ์ž‘์ ์œผ๋กœ, ์ฐฝ์˜์  ์•„์ด๋””์–ด ๋ฐœ์‚ฐ๊ณผ ์ดˆ๊ธฐ ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
8
+
9
+ ## ์‹คํ–‰ ๋ชจ๋ธ
10
+
11
+ | ์—ญํ•  | ๋ชจ๋ธ | ๋ชฉ์  |
12
+ |------|------|------|
13
+ | Primary | Gemini | ์ฐฝ์˜์  ์•„์ด๋””์–ด ์ƒ์„ฑ, ์›น ๋ฆฌ์„œ์น˜ |
14
+ | Secondary | ClaudeCode | ๊ตฌ์กฐํ™”, ์‹คํ˜„ ๊ฐ€๋Šฅ์„ฑ ๊ฒ€ํ†  |
15
+
16
+ ## ์‹œ์ž‘ํ•˜๊ธฐ
17
+
18
+ ### 1. ์ž…๋ ฅ ํŒŒ์ผ ์ค€๋น„
19
+
20
+ ```bash
21
+ # ํ”„๋กœ์ ํŠธ ๋ธŒ๋ฆฌํ”„ ์ž‘์„ฑ
22
+ cp templates/project_brief.md inputs/project_brief.md
23
+ # ํŽธ์ง‘ ํ›„ ๋‚ด์šฉ ์ฑ„์šฐ๊ธฐ
24
+ ```
25
+
26
+ ### 2. ์Šคํ…Œ์ด์ง€ ์‹คํ–‰
27
+
28
+ ```bash
29
+ # ๋ฐฉ๋ฒ• 1: ์Šฌ๋ž˜์‹œ ์ปค๋งจ๋“œ
30
+ /run-stage 01-brainstorm
31
+
32
+ # ๋ฐฉ๋ฒ• 2: ์Šคํฌ๋ฆฝํŠธ ์ง์ ‘ ์‹คํ–‰
33
+ ../../scripts/run-stage.sh 01-brainstorm
34
+ ```
35
+
36
+ ### 3. ์ˆ˜๋™ ์›Œํฌํ”Œ๋กœ์šฐ
37
+
38
+ ```bash
39
+ # Step 1: Gemini๋กœ ์•„์ด๋””์–ด ๋ฐœ์‚ฐ
40
+ /gemini "$(cat prompts/ideation.md)"
41
+
42
+ # Step 2: ๊ฒฐ๊ณผ๋ฅผ outputs/ideas.md์— ์ €์žฅ
43
+
44
+ # Step 3: ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„
45
+ # ClaudeCode๊ฐ€ ์ž๋™ ์ˆ˜ํ–‰
46
+
47
+ # Step 4: HANDOFF.md ์ƒ์„ฑ
48
+ /handoff
49
+ ```
50
+
51
+ ## ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ
52
+
53
+ ```
54
+ 01-brainstorm/
55
+ โ”œโ”€โ”€ README.md # ์ด ํŒŒ์ผ
56
+ โ”œโ”€โ”€ CLAUDE.md # AI ์ง€์นจ
57
+ โ”œโ”€โ”€ config.yaml # ์Šคํ…Œ์ด์ง€ ์„ค์ •
58
+ โ”œโ”€โ”€ prompts/
59
+ โ”‚ โ”œโ”€โ”€ ideation.md # ์•„์ด๋””์–ด ๋ฐœ์‚ฐ ํ”„๋กฌํ”„ํŠธ
60
+ โ”‚ โ”œโ”€โ”€ persona.md # ํŽ˜๋ฅด์†Œ๋‚˜ ์ƒ์„ฑ ํ”„๋กฌํ”„ํŠธ
61
+ โ”‚ โ””โ”€โ”€ requirements.md # ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ ํ”„๋กฌํ”„ํŠธ
62
+ โ”œโ”€โ”€ templates/
63
+ โ”‚ โ”œโ”€โ”€ ideas.md # ์•„์ด๋””์–ด ์ถœ๋ ฅ ํ…œํ”Œ๋ฆฟ
64
+ โ”‚ โ””โ”€โ”€ requirements_analysis.md # ์š”๊ตฌ์‚ฌํ•ญ ์ถœ๋ ฅ ํ…œํ”Œ๋ฆฟ
65
+ โ”œโ”€โ”€ inputs/ # ์ž…๋ ฅ ํŒŒ์ผ
66
+ โ”œโ”€โ”€ outputs/ # ์ถœ๋ ฅ ํŒŒ์ผ
67
+ โ”œโ”€โ”€ HANDOFF.md.template # ํ•ธ๋“œ์˜คํ”„ ํ…œํ”Œ๋ฆฟ
68
+ โ””โ”€โ”€ HANDOFF.md # ์ƒ์„ฑ๋œ ํ•ธ๋“œ์˜คํ”„ (์™„๋ฃŒ ์‹œ)
69
+ ```
70
+
71
+ ## ์™„๋ฃŒ ์กฐ๊ฑด
72
+
73
+ - [ ] ์ตœ์†Œ 10๊ฐœ ์•„์ด๋””์–ด ์ƒ์„ฑ
74
+ - [ ] 3๊ฐœ ์ด์ƒ ์‚ฌ์šฉ์ž ํŽ˜๋ฅด์†Œ๋‚˜ ์ •์˜
75
+ - [ ] ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ ๋ฌธ์„œ ์™„์„ฑ
76
+ - [ ] MVP ๋ฒ”์œ„ ์ •์˜
77
+ - [ ] HANDOFF.md ์ƒ์„ฑ
78
+
79
+ ## ์ถœ๋ ฅ๋ฌผ
80
+
81
+ | ํŒŒ์ผ | ์„ค๋ช… |
82
+ |------|------|
83
+ | `outputs/ideas.md` | ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ ์•„์ด๋””์–ด ๋ชฉ๋ก |
84
+ | `outputs/requirements_analysis.md` | ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ ๊ฒฐ๊ณผ |
85
+ | `outputs/personas.md` | ์‚ฌ์šฉ์ž ํŽ˜๋ฅด์†Œ๋‚˜ (์„ ํƒ) |
86
+ | `HANDOFF.md` | ๋‹ค์Œ ์Šคํ…Œ์ด์ง€ ์ธ๊ณ„ ๋ฌธ์„œ |
87
+
88
+ ## ๋‹ค์Œ ์Šคํ…Œ์ด์ง€
89
+
90
+ **โ†’ 02-research**: ๊ธฐ์ˆ  ๋ฆฌ์„œ์น˜ ๋ฐ ์‹œ์žฅ ๋ถ„์„
91
+
92
+ ## ํŒ
93
+
94
+ 1. **๋ฐœ์‚ฐ์  ์‚ฌ๊ณ **: ์ด ๋‹จ๊ณ„์—์„œ๋Š” ์•„์ด๋””์–ด ์ œํ•œ ์—†์ด ์ž์œ ๋กญ๊ฒŒ
95
+ 2. **๋ชจ๋“  ๊ฒƒ์„ ๊ธฐ๋ก**: ๋‚˜์ค‘์— ์žฌ๊ฒ€ํ† ํ•  ์ˆ˜ ์žˆ๋„๋ก
96
+ 3. **Gemini ํ™œ์šฉ**: ์›น ๊ฒ€์ƒ‰์ด ํ•„์š”ํ•œ ๊ฒฝ์Ÿ์‚ฌ ๋ถ„์„์— ํ™œ์šฉ
97
+ 4. **๊ตฌ์กฐํ™”๋Š” ๋‚˜์ค‘์—**: ClaudeCode๊ฐ€ ๊ตฌ์กฐํ™” ๋‹ด๋‹น
@@ -0,0 +1,92 @@
1
+ # Stage 01: Brainstorming Configuration
2
+
3
+ stage:
4
+ id: "01-brainstorm"
5
+ name: "Brainstorming"
6
+ description: "๋ฐœ์‚ฐ์  ์•„์ด๋””์–ด ์ƒ์„ฑ ๋ฐ ์š”๊ตฌ์‚ฌํ•ญ ํƒ์ƒ‰"
7
+
8
+ # Model Assignment
9
+ models:
10
+ primary: "gemini"
11
+ secondary: "claudecode"
12
+ collaboration: "parallel" # parallel | sequential | handoff
13
+
14
+ # AI ์ž๋™ ํ˜ธ์ถœ ์„ค์ • (Issue #12 ํ•ด๊ฒฐ)
15
+ auto_invoke:
16
+ enabled: true
17
+ model: "gemini"
18
+ trigger: "stage_start"
19
+ prompt_file: "prompts/ideation.md"
20
+ wrapper: "scripts/gemini-wrapper.sh"
21
+ required: true
22
+ message: "๐Ÿค– Gemini ์ž๋™ ํ˜ธ์ถœ: ๋ฐœ์‚ฐ์  ์•„์ด๋””์–ด ์ƒ์„ฑ ์‹œ์ž‘"
23
+
24
+ # Execution Mode
25
+ execution:
26
+ mode: "yolo"
27
+ container: true
28
+ sandbox: false
29
+ timeout: 3600 # 1 hour
30
+
31
+ # Input/Output Definitions
32
+ inputs:
33
+ required:
34
+ - name: "project_brief.md"
35
+ description: "ํ”„๋กœ์ ํŠธ ๊ฐœ์š” ๋ฐ ๋ชฉํ‘œ"
36
+ schema: null
37
+ optional:
38
+ - name: "user_requirements.md"
39
+ description: "์ดˆ๊ธฐ ์‚ฌ์šฉ์ž ์š”๊ตฌ์‚ฌํ•ญ"
40
+ - name: "reference_materials/"
41
+ description: "์ฐธ๊ณ  ์ž๋ฃŒ ๋””๋ ‰ํ† ๋ฆฌ"
42
+
43
+ outputs:
44
+ required:
45
+ - name: "ideas.md"
46
+ description: "๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ ์•„์ด๋””์–ด ๋ชฉ๋ก"
47
+ template: "templates/ideas.md"
48
+ - name: "requirements_analysis.md"
49
+ description: "์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ ๊ฒฐ๊ณผ"
50
+ template: "templates/requirements_analysis.md"
51
+ - name: "HANDOFF.md"
52
+ description: "๋‹ค์Œ ์Šคํ…Œ์ด์ง€ ์ธ๊ณ„ ๋ฌธ์„œ"
53
+ template: "HANDOFF.md.template"
54
+ optional:
55
+ - name: "personas.md"
56
+ description: "์‚ฌ์šฉ์ž ํŽ˜๋ฅด์†Œ๋‚˜"
57
+ - name: "competitive_analysis.md"
58
+ description: "๊ฒฝ์Ÿ์‚ฌ ๋ถ„์„"
59
+
60
+ # Prompts
61
+ prompts:
62
+ - name: "ideation"
63
+ file: "prompts/ideation.md"
64
+ model: "gemini"
65
+ description: "๋ฐœ์‚ฐ์  ์•„์ด๋””์–ด ์ƒ์„ฑ"
66
+ - name: "persona"
67
+ file: "prompts/persona.md"
68
+ model: "gemini"
69
+ description: "์‚ฌ์šฉ์ž ํŽ˜๋ฅด์†Œ๋‚˜ ์ƒ์„ฑ"
70
+ - name: "requirements"
71
+ file: "prompts/requirements.md"
72
+ model: "claudecode"
73
+ description: "์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ ๋ฐ ๊ตฌ์กฐํ™”"
74
+
75
+ # Completion Criteria
76
+ completion:
77
+ checklist:
78
+ - "์ตœ์†Œ 10๊ฐœ ์•„์ด๋””์–ด ์ƒ์„ฑ"
79
+ - "3๊ฐœ ์ด์ƒ ์‚ฌ์šฉ์ž ํŽ˜๋ฅด์†Œ๋‚˜ ์ •์˜"
80
+ - "์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ ๋ฌธ์„œ ์™„์„ฑ"
81
+ - "HANDOFF.md ์ƒ์„ฑ"
82
+ validation:
83
+ min_ideas: 10
84
+ min_personas: 3
85
+ require_handoff: true
86
+
87
+ # Transition
88
+ transition:
89
+ next_stage: "02-research"
90
+ prerequisites: []
91
+ handoff_required: true
92
+ checkpoint_required: false
File without changes
File without changes
@@ -0,0 +1,40 @@
1
+ # Project Brief: Snake Game
2
+
3
+ ## ํ”„๋กœ์ ํŠธ ์ด๋ฆ„
4
+ Snake Game
5
+
6
+ ## ํ•œ ์ค„ ์„ค๋ช…
7
+ ํด๋ž˜์‹ ์Šค๋„ค์ดํฌ ๊ฒŒ์ž„์˜ ํ˜„๋Œ€์  ์›น ๋ฒ„์ „
8
+
9
+ ## ๋ฌธ์ œ ์ •์˜
10
+ ๊ฐ„๋‹จํ•˜์ง€๋งŒ ์ค‘๋…์„ฑ ์žˆ๋Š” ์บ์ฃผ์–ผ ๊ฒŒ์ž„ ํ•„์š”
11
+
12
+ ## ํƒ€๊ฒŸ ์‚ฌ์šฉ์ž
13
+ - ์งง์€ ์‹œ๊ฐ„ ๊ฒŒ์ž„์„ ์ฆ๊ธฐ๊ณ  ์‹ถ์€ ์‚ฌ์šฉ์ž
14
+ - ๋ ˆํŠธ๋กœ ๊ฒŒ์ž„ ํŒฌ
15
+ - ๋ชจ๋ฐ”์ผ/๋ฐ์Šคํฌํ†ฑ ๋ชจ๋‘์—์„œ ๊ฒŒ์ž„์„ ์›ํ•˜๋Š” ์‚ฌ์šฉ์ž
16
+
17
+ ## ํ•ต์‹ฌ ๊ธฐ๋Šฅ
18
+ 1. ๋ฐฉํ–ฅํ‚ค/ํ„ฐ์น˜๋กœ ๋ฑ€ ์กฐ์ž‘
19
+ 2. ๋จน์ด ์ˆ˜์ง‘ ๋ฐ ์„ฑ์žฅ
20
+ 3. ์ถฉ๋Œ ๊ฐ์ง€ (๋ฒฝ, ์ž๊ธฐ ๋ชธ)
21
+ 4. ์ ์ˆ˜ ์‹œ์Šคํ…œ
22
+
23
+ ## ๊ธฐ์ˆ  ์š”๊ตฌ์‚ฌํ•ญ
24
+ - React + TypeScript
25
+ - Vite ๋นŒ๋“œ ๋„๊ตฌ
26
+ - Canvas ๋˜๋Š” CSS Grid ๊ธฐ๋ฐ˜ ๋ Œ๋”๋ง
27
+ - ๋ฐ˜์‘ํ˜• ๋””์ž์ธ (๋ชจ๋ฐ”์ผ ์ง€์›)
28
+
29
+ ## ์„ฑ๊ณต ์ง€ํ‘œ
30
+ - ๊ฒŒ์ž„ ํ”Œ๋ ˆ์ด ๊ฐ€๋Šฅ (๊ธฐ๋ณธ ๊ธฐ๋Šฅ ์™„์„ฑ)
31
+ - ๋ชจ๋ฐ”์ผ/๋ฐ์Šคํฌํ†ฑ ๋ชจ๋‘ ์ง€์›
32
+ - ํ…Œ์ŠคํŠธ ์ปค๋ฒ„๋ฆฌ์ง€ 80% ์ด์ƒ
33
+ - ๋ฐฐํฌ ์™„๋ฃŒ (GitHub Pages ๋˜๋Š” Vercel)
34
+
35
+ ## ํƒ€์ž„๋ผ์ธ
36
+ - ์ „์ฒด ํŒŒ์ดํ”„๋ผ์ธ (01~10): ์•ฝ 4์‹œ๊ฐ„
37
+
38
+ ## ์ œ์•ฝ์‚ฌํ•ญ
39
+ - ์™ธ๋ถ€ ๊ฒŒ์ž„ ์—”์ง„ ๋ฏธ์‚ฌ์šฉ (์ˆœ์ˆ˜ React)
40
+ - ๋ณต์žกํ•œ ๋ฐฑ์—”๋“œ ์—†์Œ (ํ”„๋ก ํŠธ์—”๋“œ only)
File without changes
@@ -0,0 +1,159 @@
1
+ # ๐Ÿ Snake Game - ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ ์•„์ด๋””์–ด
2
+
3
+ > ์ƒ์„ฑ์ผ: 2026-01-21
4
+ > ์Šคํ…Œ์ด์ง€: 01-brainstorm
5
+ > ํ”„๋กœ์ ํŠธ: snake-game
6
+ > AI ๋„๊ตฌ: Gemini CLI + ClaudeCode
7
+
8
+ ---
9
+
10
+ ## ๐Ÿ“‹ ํ•ต์‹ฌ ๊ธฐ๋Šฅ ์•„์ด๋””์–ด (12๊ฐœ)
11
+
12
+ ### ๐ŸŽฎ ๊ธฐ๋ณธ ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด (ํ•„์ˆ˜)
13
+
14
+ | # | ์•„์ด๋””์–ด | ์„ค๋ช… | ์šฐ์„ ์ˆœ์œ„ |
15
+ |---|---------|------|---------|
16
+ | 1 | **๊ธฐ๋ณธ ๋ฑ€ ์กฐ์ž‘** | ๋ฐฉํ–ฅํ‚ค(โ†‘โ†“โ†โ†’)๋กœ ๋ฑ€ ์ด๋™ | ๐Ÿ”ด ํ•„์ˆ˜ |
17
+ | 2 | **๋จน์ด ์‹œ์Šคํ…œ** | ๋จน์ด๋ฅผ ๋จน์œผ๋ฉด ๋ฑ€ ๊ธธ์ด +1, ์ ์ˆ˜ +10 | ๐Ÿ”ด ํ•„์ˆ˜ |
18
+ | 3 | **์ถฉ๋Œ ๊ฐ์ง€** | ๋ฒฝ/์ž๊ธฐ ๋ชธ ์ถฉ๋Œ ์‹œ ๊ฒŒ์ž„ ์˜ค๋ฒ„ | ๐Ÿ”ด ํ•„์ˆ˜ |
19
+ | 4 | **์ ์ˆ˜ ์‹œ์Šคํ…œ** | ์‹ค์‹œ๊ฐ„ ์ ์ˆ˜ ํ‘œ์‹œ | ๐Ÿ”ด ํ•„์ˆ˜ |
20
+ | 5 | **๊ฒŒ์ž„ ์žฌ์‹œ์ž‘** | ๊ฒŒ์ž„ ์˜ค๋ฒ„ ํ›„ ๋‹ค์‹œ ์‹œ์ž‘ ๊ธฐ๋Šฅ | ๐Ÿ”ด ํ•„์ˆ˜ |
21
+
22
+ ### โญ Gemini ์ œ์•ˆ ๊ธฐ๋Šฅ
23
+
24
+ | # | ์•„์ด๋””์–ด | ์„ค๋ช… | ์šฐ์„ ์ˆœ์œ„ |
25
+ |---|---------|------|---------|
26
+ | 6 | **Dash / Sprint** | ์ œํ•œ๋œ ์Šคํƒœ๋ฏธ๋‚˜๋กœ 2๋ฐฐ์† ์ด๋™ | ๐ŸŸข ์„ ํƒ |
27
+ | 7 | **Ghost Mode** | ์ž๊ธฐ ๋ชธ ํ†ต๊ณผ ํŒŒ์›Œ์—… (5์ดˆ) | ๐ŸŸข ์„ ํƒ |
28
+ | 8 | **Dynamic Obstacles** | 10์ดˆ๋งˆ๋‹ค ์œ„์น˜ ๋ณ€๊ฒฝ๋˜๋Š” ์žฅ์• ๋ฌผ | ๐ŸŸข ์„ ํƒ |
29
+ | 9 | **Combo System** | ์—ฐ์† ๋จน์ด ํš๋“ ์‹œ ์ ์ˆ˜ ๋ฐฐ์œจ (x1โ†’x2โ†’x4) | ๐ŸŸก ์ค‘์š” |
30
+ | 10 | **Portal Edges** | ๋ฒฝ ํ†ต๊ณผ ์‹œ ๋ฐ˜๋Œ€ํŽธ์œผ๋กœ ์ด๋™ (ํŒฉ๋งจ ์Šคํƒ€์ผ) | ๐ŸŸก ์ค‘์š” |
31
+ | 11 | **Different Food Types** | ์‚ฌ๊ณผ(+1), ํ™ฉ๊ธˆ์‚ฌ๊ณผ(์ ์ˆ˜๋งŒ), ๊ณ ์ถ”(์†๋„โ†‘), ์–ผ์Œ(์†๋„โ†“) | ๐ŸŸข ์„ ํƒ |
32
+ | 12 | **Puzzle Levels** | ๋ฏธ๋กœ ๋ ˆ๋ฒจ์—์„œ ๋ชจ๋“  ๋จน์ด ์ˆ˜์ง‘ | ๐ŸŸข ์„ ํƒ |
33
+
34
+ ---
35
+
36
+ ## ๐Ÿ“Š ์žฅ๋‹จ์  ๋ถ„์„ (Gemini ๋ถ„์„)
37
+
38
+ | ์•„์ด๋””์–ด | ์žฅ์  | ๋‹จ์  |
39
+ |:---------|:-----|:-----|
40
+ | **Dash / Sprint** | ์Šคํ‚ฌ ์š”์†Œ ์ถ”๊ฐ€, "ํด๋Ÿฌ์น˜" ๋ชจ๋ฉ˜ํŠธ | ์†๋„๋กœ ์ธํ•œ ์‹ค์ˆ˜ ์ถฉ๋Œ ๊ฐ€๋Šฅ |
41
+ | **Ghost Mode** | ์ดˆ๋ณด์ž ์นœํ™”์ , ์ขŒ์ ˆ๊ฐ ๊ฐ์†Œ | ๋„ˆ๋ฌด ์‰ฌ์›Œ์งˆ ์ˆ˜ ์žˆ์Œ |
42
+ | **Dynamic Obstacles** | ์‹ ์„ ํ•จ ์œ ์ง€, ์•ˆ์ „์ง€๋Œ€ ์บ ํ•‘ ๋ฐฉ์ง€ | ๋ถˆ๊ณต์ •ํ•˜๊ฒŒ ๋А๊ปด์งˆ ์ˆ˜ ์žˆ์Œ |
43
+ | **Combo System** | ๊ณต๊ฒฉ์ ์ด๊ณ  ์œ„ํ—˜ํ•œ ํ”Œ๋ ˆ์ด ์œ ๋„ | UI ๋ณต์žกํ•ด์ง (ํƒ€์ด๋จธ ํ‘œ์‹œ) |
44
+ | **Portal Edges** | ํด๋ž˜์‹ํ•˜๊ณ  ๋งŒ์กฑ์Šค๋Ÿฌ์šด ํ”Œ๋กœ์šฐ | "์ฝ”๋„ˆ ํ•จ์ •" ๊ธด์žฅ๊ฐ ๊ฐ์†Œ |
45
+ | **Different Food** | ์ „๋žต์  ๊นŠ์ด (์œ„ํ—˜ vs ๋ณด์ƒ) | ํ”Œ๋ ˆ์ด์–ด๊ฐ€ ์ƒ‰์ƒ๋ณ„ ํšจ๊ณผ ๊ธฐ์–ต ํ•„์š” |
46
+ | **Puzzle Levels** | ๋ช…ํ™•ํ•œ ์ง„ํ–‰๊ฐ/์™„๋ฃŒ๊ฐ | ๋ฌดํ•œ ๋ชจ๋“œ ๋Œ€๋น„ ์žฌํ”Œ๋ ˆ์ด์„ฑ ๋‚ฎ์Œ |
47
+
48
+ ---
49
+
50
+ ## ๐Ÿ‘ฅ ์‚ฌ์šฉ์ž ํŽ˜๋ฅด์†Œ๋‚˜ (Gemini ์ƒ์„ฑ)
51
+
52
+ ### ํŽ˜๋ฅด์†Œ๋‚˜ A: "The Commuter" (์บ์ฃผ์–ผ)
53
+ - **์ธ๊ตฌํ†ต๊ณ„**: 28์„ธ ์ง์žฅ์ธ
54
+ - **ํ–‰๋™**: ์ง€ํ•˜์ฒ ์—์„œ ๋ชจ๋ฐ”์ผ๋กœ 5-10๋ถ„ ํ”Œ๋ ˆ์ด
55
+ - **๋‹ˆ์ฆˆ**:
56
+ - ํ•œ ์† ์กฐ์ž‘ (์Šค์™€์ดํ”„)
57
+ - ๋น ๋ฅธ ์‹œ์ž‘ (๋กœ๋”ฉ ์—†์Œ)
58
+ - ์˜คํ”„๋ผ์ธ ๊ฐ€๋Šฅ
59
+ - ๋ธŒ๋ผ์šฐ์ € ๋‹ซ์•„๋„ ์ž๋™ ์ €์žฅ
60
+ - **๋ถˆ๋งŒ**: ๋ณต์žกํ•œ ๋ฉ”๋‰ด, ์ž‘์€ ๋ฒ„ํŠผ, ๊ด‘๊ณ 
61
+
62
+ ### ํŽ˜๋ฅด์†Œ๋‚˜ B: "The High-Scorer" (๊ฒฝ์Ÿ์ )
63
+ - **์ธ๊ตฌํ†ต๊ณ„**: 16์„ธ ํ•™์ƒ
64
+ - **ํ–‰๋™**: ์‰ฌ๋Š” ์‹œ๊ฐ„์— ๋ฐ์Šคํฌํ†ฑ PC๋กœ ํ”Œ๋ ˆ์ด, ๋ฆฌ๋”๋ณด๋“œ์— ์ง‘์ฐฉ
65
+ - **๋‹ˆ์ฆˆ**:
66
+ - ์ •๋ฐ€ํ•œ ํ‚ค๋ณด๋“œ ์กฐ์ž‘ (์ž…๋ ฅ ์ง€์—ฐ ์ œ๋กœ)
67
+ - ๊ณ ๋Œ€๋น„ ์‹œ๊ฐ (์žฅ์• ๋ฌผ ๋ช…ํ™•ํžˆ ๋ณด์ž„)
68
+ - ์ฆ‰์‹œ ์žฌ์‹œ์ž‘ ๊ธฐ๋Šฅ ("R" ํ‚ค)
69
+ - ๊ธ€๋กœ๋ฒŒ ๋ฆฌ๋”๋ณด๋“œ
70
+ - **๋ถˆ๋งŒ**: ๋ถˆ๊ณต์ •ํ•œ RNG, ๋ž™, ๋А๋ฆฐ ์• ๋‹ˆ๋ฉ”์ด์…˜
71
+
72
+ ### ํŽ˜๋ฅด์†Œ๋‚˜ C: "The Retro Fan" (ํ–ฅ์ˆ˜)
73
+ - **์ธ๊ตฌํ†ต๊ณ„**: 40์„ธ ๊ฐœ๋ฐœ์ž
74
+ - **ํ–‰๋™**: ํ”ฝ์…€ ์•„ํŠธ์™€ ์นฉํŠ  ์Œ์•… ์„ ํ˜ธ, ํœด์‹์šฉ ํ”Œ๋ ˆ์ด
75
+ - **๋‹ˆ์ฆˆ**:
76
+ - ํด๋ž˜์‹ CRT ํ•„ํ„ฐ ๋˜๋Š” ํ”ฝ์…€์•„ํŠธ ๋ฏธํ•™
77
+ - ๋‹จ์ˆœํ•˜๊ณ  "์ˆœ์ˆ˜ํ•œ" ๊ฒŒ์ž„ํ”Œ๋ ˆ์ด
78
+ - ๊ฒŒ์ž„ํŒจ๋“œ/์ปจํŠธ๋กค๋Ÿฌ ์ง€์›
79
+ - **๋ถˆ๋งŒ**: ๊ณผ๋„ํ•˜๊ฒŒ ํ˜„๋Œ€์ ์ธ "ํ™”๋ คํ•œ" ํšจ๊ณผ, ์†Œ์•ก๊ฒฐ์ œ
80
+
81
+ ---
82
+
83
+ ## ๐Ÿ” ์œ ์‚ฌ ํ”„๋กœ์ ํŠธ ์‚ฌ๋ก€ (Gemini ์กฐ์‚ฌ)
84
+
85
+ ### 1. Google Snake (๊ฒ€์ƒ‰ ์ด์Šคํ„ฐ์—๊ทธ)
86
+ - **ํŠน์ง•**: "์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ" ์Šค๋„ค์ดํฌ์˜ ํ‘œ์ค€
87
+ - **ํ•ต์‹ฌ ๊ธฐ๋Šฅ**: ํ† ๊ธ€ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“œ (์†๋„, ํฌํ„ธ, ํ‰ํ™” ๋ชจ๋“œ)
88
+
89
+ ### 2. Slither.io
90
+ - **ํŠน์ง•**: "ํ˜„๋Œ€ ๋ฉ€ํ‹ฐํ”Œ๋ ˆ์ด์–ด" ์‹œ๋Œ€ ์ •์˜
91
+ - **ํ•ต์‹ฌ ๊ธฐ๋Šฅ**: ๋งˆ์šฐ์Šค ๋”ฐ๋ผ๊ฐ€๊ธฐ (์•„๋‚ ๋กœ๊ทธ), "์ฐจ๋‹จ" ๋ฉ”์นด๋‹‰
92
+
93
+ ### 3. Classic Nokia Snake (Snake II)
94
+ - **ํŠน์ง•**: ์žฅ๋ฅด์˜ ๊ธฐ์ดˆ
95
+ - **ํ•ต์‹ฌ ๊ธฐ๋Šฅ**: ๋‹จ์ƒ‰, ๊ทธ๋ฆฌ๋“œ ๊ธฐ๋ฐ˜, ๋ฒฝ ๋žฉ์–ด๋ผ์šด๋“œ ์˜ต์…˜
96
+
97
+ ### 4. React-Snake (GitHub Topics)
98
+ - **๊ณตํ†ต ๊ธฐ์ˆ  ์Šคํƒ ํŒจํ„ด**:
99
+ - `useInterval` ํ›…์œผ๋กœ ๊ฒŒ์ž„ ๋ฃจํ”„
100
+ - ์ขŒํ‘œ ๋ฐฐ์—ด `[{x,y}, {x,y}]`๋กœ ๋ฑ€ ๋ชธํ†ต
101
+ - CSS Grid (์‰ฌ์›€) vs HTML5 Canvas (์„ฑ๋Šฅ ์ข‹์Œ)
102
+ - Redux/Zustand๋กœ ํ•˜์ด์Šค์ฝ”์–ด ๊ด€๋ฆฌ
103
+
104
+ ---
105
+
106
+ ## ๐ŸŽฏ MVP ๊ถŒ์žฅ์‚ฌํ•ญ (Gemini ์ œ์•ˆ)
107
+
108
+ **ํŽ˜๋ฅด์†Œ๋‚˜ A (The Commuter)**์™€ **ํŽ˜๋ฅด์†Œ๋‚˜ B (The Competitive)**๋ฅผ ์—ผ๋‘์— ๋‘๊ณ :
109
+
110
+ ### ๊ธฐ์ˆ  ์Šคํƒ
111
+ - **๋ Œ๋”๋ง**: React + Canvas (๋ชจ๋ฐ”์ผ ์„ฑ๋Šฅ ์šฐ์„ )
112
+ - **์ž…๋ ฅ**: ํ‚ค๋ณด๋“œ (Arrow/WASD) + ๋ชจ๋ฐ”์ผ ์Šค์™€์ดํ”„
113
+
114
+ ### MVP ๊ธฐ๋Šฅ ์„ธํŠธ
115
+ - [x] ํด๋ž˜์‹ ๋ฌดํ•œ ๋ชจ๋“œ
116
+ - [x] LocalStorage์— ํ•˜์ด์Šค์ฝ”์–ด ์ €์žฅ
117
+ - [x] 3๋‹จ๊ณ„ ์†๋„ (๋А๋ฆผ, ๋ณดํ†ต, ๋น ๋ฆ„)
118
+ - [x] "์ฆ‰์‹œ ์žฌ์‹œ์ž‘" (ํ•œ ๋ฒˆ ๋” ์‹œ๋„ ๋ฃจํ”„)
119
+
120
+ ---
121
+
122
+ ## ๐Ÿ“Š ์ตœ์ข… ์šฐ์„ ์ˆœ์œ„ ๋งคํŠธ๋ฆญ์Šค
123
+
124
+ ```
125
+ ๋†’์€ ๊ฐ€์น˜
126
+ โ”‚
127
+ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
128
+ โ”‚ Combo System โ”‚ ๊ธฐ๋ณธ ์กฐ์ž‘ โ”‚
129
+ โ”‚ Portal Edges โ”‚ ๋จน์ด ์‹œ์Šคํ…œ โ”‚
130
+ โ”‚ ๋ ˆ๋ฒจ ์‹œ์Šคํ…œ โ”‚ ์ถฉ๋Œ ๊ฐ์ง€ โ”‚
131
+ โ”‚ โ”‚ ์ ์ˆ˜ ์‹œ์Šคํ…œ โ”‚
132
+ ์ ์€ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๋งŽ์€
133
+ ๋…ธ๋ ฅ โ”‚ โ”‚ ๊ฒŒ์ž„ ์žฌ์‹œ์ž‘ โ”‚ ๋…ธ๋ ฅ
134
+ โ”‚ ์ผ์‹œ์ •์ง€ โ”‚ โ”‚
135
+ โ”‚ ํ•˜์ด์Šค์ฝ”์–ด ์ €์žฅ โ”‚ Different Food โ”‚
136
+ โ”‚ โ”‚ Ghost Mode โ”‚
137
+ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
138
+ โ”‚
139
+ ๋‚ฎ์€ ๊ฐ€์น˜
140
+ ```
141
+
142
+ ---
143
+
144
+ ## โœ… ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ ์™„๋ฃŒ ์ฒดํฌ๋ฆฌ์ŠคํŠธ
145
+
146
+ - [x] ์ตœ์†Œ 10๊ฐœ ์•„์ด๋””์–ด ์ƒ์„ฑ (12๊ฐœ ์™„๋ฃŒ)
147
+ - [x] 3๊ฐœ ์ด์ƒ ์‚ฌ์šฉ์ž ํŽ˜๋ฅด์†Œ๋‚˜ ์ •์˜ (3๊ฐœ ์™„๋ฃŒ)
148
+ - [x] ๊ฐ ์•„์ด๋””์–ด ์žฅ๋‹จ์  ๋ถ„์„
149
+ - [x] ์œ ์‚ฌ ํ”„๋กœ์ ํŠธ ์กฐ์‚ฌ
150
+ - [x] MVP ๋ฒ”์œ„ ์ œ์•ˆ
151
+
152
+ ---
153
+
154
+ ## ๐Ÿ“ AI ํ˜ธ์ถœ ๊ธฐ๋ก
155
+
156
+ | AI | ํ˜ธ์ถœ ์‹œ๊ฐ„ | ํ”„๋กฌํ”„ํŠธ | ๊ฒฐ๊ณผ | ์ƒํƒœ |
157
+ |----|----------|---------|------|------|
158
+ | Gemini | 2026-01-21 11:58 | Snake Game ๋ธŒ๋ ˆ์ธ์Šคํ† ๋ฐ | 12๊ฐœ ์•„์ด๋””์–ด, 3 ํŽ˜๋ฅด์†Œ๋‚˜, ์‚ฌ๋ก€ ์กฐ์‚ฌ | โœ… ์„ฑ๊ณต |
159
+ | ClaudeCode | 2026-01-21 11:57 | ๊ฒฐ๊ณผ ๊ตฌ์กฐํ™” | ideas.md ์ž‘์„ฑ | โœ… ์„ฑ๊ณต |