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,153 @@
1
+ # Parallel Task Groups Configuration
2
+ # ax-templates-3 병렬 태스크 관리 (Issue #9 해결)
3
+
4
+ parallel_execution:
5
+ # 병렬 실행 활성화 여부
6
+ enabled: true
7
+
8
+ # 기본 규칙
9
+ default_mode: "sequential" # sequential | parallel_when_safe
10
+
11
+ # 의존성 분석 규칙
12
+ dependency_analysis:
13
+ # 의존성 없는 태스크 자동 그룹화
14
+ auto_group_independent: true
15
+
16
+ # 의존성 유형
17
+ dependency_types:
18
+ - type: "blocks"
19
+ description: "완료되어야 다음 태스크 시작 가능"
20
+
21
+ - type: "informs"
22
+ description: "참조하지만 블로킹 아님"
23
+
24
+ - type: "none"
25
+ description: "완전 독립"
26
+
27
+ # 병렬 그룹 템플릿
28
+ parallel_groups:
29
+ # 예시: 스프린트 1 태스크 그룹
30
+ sprint_1:
31
+ # 그룹 A: 병렬 실행 가능
32
+ group_a:
33
+ tasks:
34
+ - "TASK-001: 프로젝트 초기 설정"
35
+ - "TASK-002: 환경 변수 설정"
36
+ - "TASK-003: ESLint/Prettier 설정"
37
+ parallel: true
38
+ reason: "독립적인 설정 작업들"
39
+
40
+ # 그룹 B: 그룹 A 완료 후 병렬 실행
41
+ group_b:
42
+ depends_on: ["group_a"]
43
+ tasks:
44
+ - "TASK-004: 레이아웃 컴포넌트"
45
+ - "TASK-005: 네비게이션 컴포넌트"
46
+ - "TASK-006: 푸터 컴포넌트"
47
+ parallel: true
48
+ reason: "공통 컴포넌트, 상호 의존성 없음"
49
+
50
+ # 그룹 C: 순차 실행 필요
51
+ group_c:
52
+ depends_on: ["group_b"]
53
+ tasks:
54
+ - "TASK-007: API 클라이언트 설정"
55
+ - "TASK-008: 인증 서비스 구현"
56
+ - "TASK-009: 보호된 라우트 설정"
57
+ parallel: false
58
+ reason: "순차적 의존성 있음"
59
+
60
+ # 병렬 실행 규칙
61
+ execution_rules:
62
+ # 병렬 실행 가능 조건
63
+ parallel_allowed_when:
64
+ - "no_shared_files" # 동일 파일 수정 없음
65
+ - "no_data_dependency" # 데이터 의존성 없음
66
+ - "different_modules" # 다른 모듈
67
+ - "explicit_parallel_flag" # 명시적 병렬 플래그
68
+
69
+ # 병렬 실행 금지 조건
70
+ parallel_prohibited_when:
71
+ - "same_file_modification" # 동일 파일 수정
72
+ - "database_migration" # DB 마이그레이션
73
+ - "sequential_dependency" # 순차 의존성
74
+ - "shared_state" # 공유 상태
75
+
76
+ # 태스크 분류 가이드
77
+ classification_guide:
78
+ # 병렬 가능 태스크 유형
79
+ parallelizable:
80
+ - "독립적인 UI 컴포넌트 구현"
81
+ - "서로 다른 모듈의 유틸리티 함수"
82
+ - "독립적인 테스트 작성"
83
+ - "문서 작성"
84
+ - "환경 설정 (충돌 없는 경우)"
85
+
86
+ # 순차 필수 태스크 유형
87
+ sequential_required:
88
+ - "데이터베이스 스키마 변경"
89
+ - "인증/인가 흐름"
90
+ - "API 엔드포인트 → 클라이언트 통합"
91
+ - "의존성 있는 컴포넌트 체인"
92
+ - "버전 업그레이드"
93
+
94
+ # 시각화 형식
95
+ visualization:
96
+ # 의존성 그래프 형식
97
+ graph_format: "mermaid"
98
+
99
+ # 예시 출력
100
+ example: |
101
+ ```mermaid
102
+ graph LR
103
+ A[TASK-001] --> D[TASK-004]
104
+ B[TASK-002] --> D
105
+ C[TASK-003] --> D
106
+ D --> G[TASK-007]
107
+ E[TASK-005] --> G
108
+ F[TASK-006] --> G
109
+ G --> H[TASK-008]
110
+ H --> I[TASK-009]
111
+
112
+ subgraph "그룹 A (병렬)"
113
+ A
114
+ B
115
+ C
116
+ end
117
+
118
+ subgraph "그룹 B (병렬)"
119
+ D
120
+ E
121
+ F
122
+ end
123
+
124
+ subgraph "그룹 C (순차)"
125
+ G
126
+ H
127
+ I
128
+ end
129
+ ```
130
+
131
+ # 실행 최적화
132
+ optimization:
133
+ # 동시 실행 최대 수
134
+ max_concurrent_tasks: 3
135
+
136
+ # 리소스 제한
137
+ resource_limits:
138
+ cpu_intensive_concurrent: 2
139
+ io_intensive_concurrent: 5
140
+
141
+ # 우선순위 기반 스케줄링
142
+ priority_scheduling: true
143
+
144
+ # 모니터링
145
+ monitoring:
146
+ # 진행 상황 추적
147
+ track_parallel_progress: true
148
+
149
+ # 병목 감지
150
+ detect_bottlenecks: true
151
+
152
+ # 완료 알림
153
+ notify_on_group_complete: true
@@ -0,0 +1,154 @@
1
+ # Task Schema Definition
2
+ # ax-templates-3 태스크 관리 스키마 (Issue #4, #6, #8, #16 해결)
3
+
4
+ schema:
5
+ name: "Project Tasks"
6
+ version: "1.0.0"
7
+
8
+ # 필수 필드 정의
9
+ fields:
10
+ # 태스크 이름 (Title)
11
+ - name: "Task Name"
12
+ type: "title"
13
+ required: true
14
+ description: "태스크 제목"
15
+
16
+ # 상태 필드 (Issue #16: Status 필드 필수!)
17
+ - name: "Status"
18
+ type: "select"
19
+ required: true
20
+ default: "To Do"
21
+ options:
22
+ - name: "To Do"
23
+ color: "gray"
24
+ - name: "In Progress"
25
+ color: "blue"
26
+ - name: "Review"
27
+ color: "yellow"
28
+ - name: "Done"
29
+ color: "green"
30
+ - name: "Blocked"
31
+ color: "red"
32
+
33
+ # 우선순위
34
+ - name: "Priority"
35
+ type: "select"
36
+ required: false
37
+ default: "Medium"
38
+ options:
39
+ - name: "High"
40
+ color: "red"
41
+ - name: "Medium"
42
+ color: "yellow"
43
+ - name: "Low"
44
+ color: "green"
45
+
46
+ # 정렬용 순서 (Issue #5, #6, #8 해결)
47
+ - name: "Order"
48
+ type: "number"
49
+ required: true
50
+ description: "태스크 순서 (정렬용)"
51
+ auto_increment: true
52
+
53
+ # 스프린트
54
+ - name: "Sprint"
55
+ type: "select"
56
+ required: false
57
+ options:
58
+ - name: "Sprint 1"
59
+ - name: "Sprint 2"
60
+ - name: "Sprint 3"
61
+
62
+ # 담당자
63
+ - name: "Assignee"
64
+ type: "text"
65
+ required: false
66
+
67
+ # 예상 시간
68
+ - name: "Estimate"
69
+ type: "text"
70
+ required: false
71
+ description: "예상 소요 시간 (예: 2h, 1d)"
72
+
73
+ # 마감일
74
+ - name: "Due Date"
75
+ type: "date"
76
+ required: false
77
+
78
+ # 의존성
79
+ - name: "Depends On"
80
+ type: "text"
81
+ required: false
82
+ description: "선행 태스크 ID (콤마로 구분)"
83
+
84
+ # 스테이지
85
+ - name: "Stage"
86
+ type: "select"
87
+ required: false
88
+ options:
89
+ - name: "06-implementation"
90
+ - name: "07-refactoring"
91
+ - name: "08-qa"
92
+ - name: "09-testing"
93
+
94
+ # 태스크 생성 규칙 (Issue #6, #8 해결: 순차 생성!)
95
+ creation_rules:
96
+ # 병렬 생성 금지 - 순서 보장
97
+ mode: "sequential"
98
+ batch_size: 1
99
+
100
+ # 순차 생성 절차
101
+ procedure:
102
+ - step: 1
103
+ action: "create_single_task"
104
+ description: "단일 태스크 생성"
105
+ - step: 2
106
+ action: "verify_order_field"
107
+ description: "Order 필드 확인"
108
+ - step: 3
109
+ action: "create_next_task"
110
+ description: "다음 태스크 생성 (Order + 1)"
111
+
112
+ # 금지 사항
113
+ prohibited:
114
+ - "batch_create" # 일괄 생성 금지
115
+ - "parallel_create" # 병렬 생성 금지
116
+
117
+ # 권장 사항
118
+ recommended:
119
+ - "explicit_order" # 명시적 Order 값 지정
120
+ - "status_to_do" # Status = "To Do"로 생성
121
+ - "sequential_naming" # 순차적 이름 부여
122
+
123
+ # Notion 데이터베이스 생성 템플릿
124
+ notion_template:
125
+ database_name: "{{PROJECT_NAME}} Tasks"
126
+
127
+ properties:
128
+ - "Task Name" # title
129
+ - "Status" # select (필수!)
130
+ - "Priority" # select
131
+ - "Order" # number (정렬용!)
132
+ - "Sprint" # select
133
+ - "Assignee" # text
134
+ - "Estimate" # text
135
+ - "Due Date" # date
136
+ - "Depends On" # text
137
+ - "Stage" # select
138
+
139
+ # 기본 뷰 설정
140
+ views:
141
+ - name: "Board View"
142
+ type: "board"
143
+ group_by: "Status"
144
+
145
+ - name: "List View"
146
+ type: "table"
147
+ sort_by: "Order"
148
+ sort_direction: "ascending"
149
+
150
+ - name: "Sprint View"
151
+ type: "board"
152
+ group_by: "Sprint"
153
+ filter:
154
+ - "Status != Done"
@@ -0,0 +1,163 @@
1
+ # Stage 06: Implementation
2
+
3
+ 핵심 기능 구현 단계
4
+
5
+ ## 🎭 페르소나: Precise Builder
6
+
7
+ > 당신은 Precise Builder입니다.
8
+ > 정확하고 유지보수 가능한 코드를 작성하세요.
9
+ > 에러를 미리 예방하고, 테스트하기 쉬운 구조를 만드세요.
10
+
11
+ ### 특성
12
+ - 정확한 구현
13
+ - 에러 방지
14
+ - 테스트 가능한 코드
15
+ - 클린 코드
16
+
17
+ ### 권장 행동
18
+ - 명확하고 읽기 쉬운 코드
19
+ - 에러 핸들링
20
+ - 타입 안전성
21
+ - 테스트 용이성
22
+
23
+ ### 지양 행동
24
+ - 오버 엔지니어링
25
+ - 매직 넘버/문자열
26
+ - 에러 무시
27
+ - 복잡한 로직
28
+
29
+ ### AI 설정
30
+ - **Temperature**: 0.3 (높은 정밀도)
31
+ - **정밀도**: High
32
+
33
+ ## 실행 모델
34
+ - **Primary**: ClaudeCode (코드 생성)
35
+ - **Mode**: Plan + Sandbox - 안전한 코드 실행
36
+
37
+ ## 목표
38
+ 1. 프로젝트 스캐폴딩
39
+ 2. 핵심 기능 구현
40
+ 3. 데이터베이스 연동
41
+ 4. API 구현
42
+
43
+ ## 입력 파일
44
+ - `../05-task-management/outputs/tasks.md`
45
+ - `../03-planning/outputs/architecture.md`
46
+ - `../03-planning/outputs/implementation.yaml` - **구현 규칙 (필수 참조!)**
47
+ - `../04-ui-ux/outputs/design_system.md`
48
+ - `../05-task-management/HANDOFF.md`
49
+
50
+ ### ⚠️ implementation.yaml 준수 필수
51
+ 구현 전 `implementation.yaml` 파일을 읽고 다음 규칙을 확인하세요:
52
+ - 컴포넌트 타입/export 방식
53
+ - 스타일링 접근 방식
54
+ - 상태 관리 패턴
55
+ - 네이밍 규칙
56
+ - 폴더 구조
57
+ - 금지/권장 사항
58
+
59
+ ## 출력 파일
60
+ - `outputs/source_code/` - 소스 코드 디렉토리
61
+ - `outputs/implementation_log.md` - 구현 로그
62
+ - `HANDOFF.md` - 다음 스테이지 인계 문서
63
+
64
+ ## 워크플로우
65
+
66
+ ### 1. 프로젝트 초기화
67
+ ```bash
68
+ # 예: Next.js 프로젝트
69
+ npx create-next-app@latest project-name
70
+ cd project-name
71
+ ```
72
+
73
+ ### 2. 공통 컴포넌트 구현
74
+ - 디자인 시스템 기반 UI 컴포넌트
75
+ - 레이아웃 컴포넌트
76
+ - 유틸리티 함수
77
+
78
+ ### 3. 기능 구현
79
+ - 스프린트 1 태스크 순차 구현
80
+ - 각 태스크 완료 시 커밋
81
+ - 구현 로그 업데이트
82
+
83
+ ### 4. 통합
84
+ - API 연동
85
+ - 데이터베이스 연결
86
+ - 인증/인가 구현
87
+
88
+ ## 체크포인트 규칙
89
+ - **필수**: 이 스테이지는 체크포인트가 필수입니다
90
+ - 스프린트 완료마다 체크포인트 생성
91
+ - 주요 기능 완료 시 체크포인트 생성
92
+
93
+ ## 구현 원칙
94
+ 1. 작은 단위로 커밋
95
+ 2. 테스트 가능한 코드 작성
96
+ 3. 에러 핸들링 포함
97
+ 4. 타입 안전성 확보 (TypeScript)
98
+
99
+ ---
100
+
101
+ ## ⚠️ Test-First 플로우 (필수)
102
+
103
+ > **중요**: 버그 조기 발견을 위해 구현 완료 후 반드시 스모크 테스트를 실행하세요.
104
+ > Snake Game 프로젝트에서 이 단계를 건너뛰어 버그가 2개 스테이지를 통과한 사례가 있습니다.
105
+
106
+ ### 구현 완료 후 필수 테스트
107
+
108
+ ```bash
109
+ # 1. 개발 서버 실행 확인
110
+ npm run dev
111
+ # 브라우저에서 기본 동작 확인
112
+
113
+ # 2. 정적 분석
114
+ npm run lint
115
+
116
+ # 3. 타입 체크
117
+ npm run typecheck
118
+
119
+ # 4. Playwright 스모크 테스트 (설정되어 있다면)
120
+ npx playwright test --grep @smoke
121
+ ```
122
+
123
+ ### 테스트 실패 시 조치
124
+ 1. **lint 오류**: 즉시 수정
125
+ 2. **typecheck 오류**: 타입 정의 수정
126
+ 3. **런타임 오류**: 버그로 기록하고 수정
127
+ 4. **UI 동작 이상**: 버그 ID 부여 (예: BUG-001)
128
+
129
+ ### 버그 기록 형식
130
+ ```markdown
131
+ ### BUG-001: [버그 제목]
132
+ - **발견 시점**: 06-implementation 스모크 테스트
133
+ - **증상**: [증상 설명]
134
+ - **원인**: [원인 분석]
135
+ - **수정 파일**: [파일 경로]
136
+ - **상태**: 수정됨 / 미수정
137
+ ```
138
+
139
+ ### HANDOFF.md 테스트 섹션 필수
140
+ HANDOFF.md에 반드시 테스트 결과 섹션을 포함하세요:
141
+ - 실행한 테스트 목록
142
+ - 테스트 결과 (통과/실패)
143
+ - 발견된 버그 (있다면)
144
+ - 버그 수정 상태
145
+
146
+ ---
147
+
148
+ ## 완료 조건
149
+ - [ ] 프로젝트 스캐폴딩 완료
150
+ - [ ] 공통 컴포넌트 구현
151
+ - [ ] 핵심 기능 구현 (스프린트 1-2)
152
+ - [ ] API 엔드포인트 구현
153
+ - [ ] **스모크 테스트 실행** (Test-First)
154
+ - [ ] **lint/typecheck 통과**
155
+ - [ ] 체크포인트 생성
156
+ - [ ] HANDOFF.md 생성 (테스트 결과 포함)
157
+
158
+ ## 다음 스테이지
159
+ → **07-refactoring**: 코드 품질 개선 및 최적화
160
+
161
+
162
+
163
+
@@ -0,0 +1,184 @@
1
+ # HANDOFF: 06-implementation → 07-refactoring
2
+
3
+ > 생성일: 2026-01-21
4
+ > 프로젝트: snake-game
5
+ > 현재 스테이지: 06-implementation (완료)
6
+ > 다음 스테이지: 07-refactoring
7
+
8
+ ---
9
+
10
+ ## ✅ 완료된 작업
11
+
12
+ ### Sprint 1: 프로젝트 설정 + 코어 로직
13
+ - [x] TASK-001: Vite + React + TS 프로젝트 초기화
14
+ - [x] TASK-002: 타입 정의 (types/index.ts)
15
+ - [x] TASK-003: 상수 정의 (constants/config.ts)
16
+ - [x] TASK-004: 글로벌 스타일 (styles/index.css)
17
+ - [x] TASK-005: useGameLoop 훅
18
+ - [x] TASK-006: gameReducer
19
+ - [x] TASK-007: collision.ts
20
+ - [x] TASK-008: renderer.ts
21
+ - [x] TASK-009: random.ts
22
+ - [x] TASK-016: useKeyboard 훅
23
+
24
+ ### Sprint 2: UI 컴포넌트 + 통합
25
+ - [x] TASK-010: GameEngine 통합
26
+ - [x] TASK-011: CanvasLayer 컴포넌트
27
+ - [x] TASK-012: ScoreBoard 컴포넌트
28
+ - [x] TASK-013: StartScreen 컴포넌트
29
+ - [x] TASK-014: GameOverModal 컴포넌트
30
+ - [x] TASK-020: useHighScore 훅
31
+ - [x] TASK-021: 일시정지 기능
32
+
33
+ ---
34
+
35
+ ## 📁 생성된 파일
36
+
37
+ ### 타입 및 상수
38
+ | 파일 | 설명 |
39
+ |------|------|
40
+ | `src/types/index.ts` | 모든 게임 타입 정의 |
41
+ | `src/constants/config.ts` | 게임 설정, 키 매핑, 색상 등 |
42
+
43
+ ### 엔진
44
+ | 파일 | 설명 |
45
+ |------|------|
46
+ | `src/engine/gameReducer.ts` | 게임 상태 관리 리듀서 |
47
+ | `src/engine/collision.ts` | 충돌 감지 함수 |
48
+ | `src/engine/renderer.ts` | Canvas 렌더링 함수 |
49
+
50
+ ### 훅
51
+ | 파일 | 설명 |
52
+ |------|------|
53
+ | `src/hooks/useGameLoop.ts` | requestAnimationFrame 기반 게임 루프 |
54
+ | `src/hooks/useKeyboard.ts` | 키보드 입력 처리 |
55
+ | `src/hooks/useHighScore.ts` | 최고 점수 localStorage 관리 |
56
+
57
+ ### 유틸리티
58
+ | 파일 | 설명 |
59
+ |------|------|
60
+ | `src/utils/random.ts` | 랜덤 위치 생성 함수 |
61
+
62
+ ### 컴포넌트
63
+ | 파일 | 설명 |
64
+ |------|------|
65
+ | `src/components/CanvasLayer.tsx` | Canvas 래퍼 컴포넌트 |
66
+ | `src/components/ScoreBoard.tsx` | 점수판 컴포넌트 |
67
+ | `src/components/StartScreen.tsx` | 시작 화면 오버레이 |
68
+ | `src/components/GameOverModal.tsx` | 게임 오버 모달 |
69
+ | `src/GameEngine.tsx` | 메인 게임 통합 컴포넌트 |
70
+
71
+ ### 스타일
72
+ | 파일 | 설명 |
73
+ |------|------|
74
+ | `src/styles/index.css` | 글로벌 스타일 (Neon Arcade 테마) |
75
+ | `src/components/*.module.css` | 컴포넌트별 CSS Modules |
76
+
77
+ ---
78
+
79
+ ## 🎮 구현된 기능
80
+
81
+ ### 핵심 기능
82
+ - ✅ 방향키/WASD로 뱀 조작
83
+ - ✅ 먹이 먹으면 뱀 성장 + 점수 증가
84
+ - ✅ 벽/자기 몸 충돌 시 게임 오버
85
+ - ✅ 점수 표시 (현재 점수, 레벨, 최고 점수)
86
+ - ✅ 게임 재시작 기능
87
+
88
+ ### 추가 기능
89
+ - ✅ 레벨 시스템 (점수에 따른 속도 증가)
90
+ - ✅ 최고 점수 localStorage 저장
91
+ - ✅ 일시정지/재개 (Space 키)
92
+ - ✅ Neon Arcade 테마 UI
93
+
94
+ ---
95
+
96
+ ## 🏗️ 아키텍처
97
+
98
+ ```
99
+ App.tsx
100
+ └── GameEngine.tsx (메인 컨트롤러)
101
+ ├── useReducer(gameReducer) - 상태 관리
102
+ ├── useGameLoop() - 게임 루프
103
+ ├── useKeyboard() - 입력 처리
104
+ ├── useHighScore() - 점수 저장
105
+
106
+ ├── ScoreBoard - 점수 표시
107
+ ├── CanvasLayer - 게임 렌더링
108
+ │ └── renderer.ts - Canvas 그리기
109
+ ├── StartScreen - 시작 화면
110
+ └── GameOverModal - 게임 오버
111
+ ```
112
+
113
+ ---
114
+
115
+ ## 🧪 검증 결과
116
+
117
+ | 항목 | 상태 | 비고 |
118
+ |------|------|------|
119
+ | TypeScript 컴파일 | ✅ 통과 | `npm run build` |
120
+ | 번들 크기 | ✅ 204KB | 목표 200KB 근접 |
121
+ | 게임 플레이 | ✅ 동작 | 모든 기능 정상 |
122
+ | 키보드 입력 | ✅ 동작 | Arrow, WASD, Space |
123
+ | 충돌 감지 | ✅ 동작 | 벽, 자기 몸, 먹이 |
124
+ | 점수 저장 | ✅ 동작 | localStorage |
125
+
126
+ ---
127
+
128
+ ## 🔧 07-refactoring 권장 작업
129
+
130
+ ### 1. 코드 최적화
131
+ - [ ] `renderer.ts`: 불필요한 재렌더링 방지
132
+ - [ ] `gameReducer.ts`: 상태 업데이트 최적화
133
+ - [ ] 컴포넌트 메모이제이션 (React.memo)
134
+
135
+ ### 2. 코드 품질
136
+ - [ ] ESLint 경고 해결
137
+ - [ ] 미사용 import 제거
138
+ - [ ] 상수 매직 넘버 추출
139
+
140
+ ### 3. 성능 개선
141
+ - [ ] Canvas 더블 버퍼링 고려
142
+ - [ ] 게임 루프 최적화 (프레임 스킵 방지)
143
+
144
+ ### 4. 모바일 지원 (Sprint 3)
145
+ - [ ] useSwipe 훅 구현
146
+ - [ ] MobileControls 컴포넌트 추가
147
+ - [ ] 터치 이벤트 처리
148
+
149
+ ---
150
+
151
+ ## 🎯 마일스톤 상태
152
+
153
+ | 마일스톤 | 상태 | 체크포인트 |
154
+ |---------|------|-----------|
155
+ | M1: MVP 기반 | ✅ 완료 | - |
156
+ | M2: MVP 완성 | ✅ 완료 | `checkpoint_m2_mvp` |
157
+ | M3: 품질 개선 | ⏳ 진행 전 | - |
158
+ | M4: 배포 | ⏳ 진행 전 | - |
159
+
160
+ ---
161
+
162
+ ## 🚀 다음 단계
163
+
164
+ ```bash
165
+ # 07-refactoring 스테이지 실행
166
+ /run-stage 07-refactoring
167
+
168
+ # 또는
169
+ /refactor
170
+ ```
171
+
172
+ ---
173
+
174
+ ## 📊 AI 호출 기록
175
+
176
+ | AI | 호출 시간 | 작업 | 결과 |
177
+ |----|----------|------|------|
178
+ | ClaudeCode | 13:10~14:30 | Sprint 1+2 구현 | 성공 |
179
+
180
+ ---
181
+
182
+ **생성자**: ClaudeCode
183
+ **검토자**: -
184
+ **승인**: 대기