create-ax-project 1.0.0 → 1.0.2
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.
- package/bin/create.js +97 -40
- package/package.json +5 -2
- package/template/.claude/CLAUDE.md +0 -7
- package/template/.claude/commands/CLAUDE.md +0 -0
- package/template/.claude/hooks/CLAUDE.md +0 -0
- package/template/.claude/skills/ai-collaboration/CLAUDE.md +0 -0
- package/template/.claude/skills/auto-checkpoint/CLAUDE.md +0 -0
- package/template/.claude/skills/context-compression/CLAUDE.md +0 -0
- package/template/.claude/skills/context-compression/prompts/CLAUDE.md +0 -0
- package/template/.claude/skills/output-validator/CLAUDE.md +0 -0
- package/template/.claude/skills/smart-handoff/CLAUDE.md +0 -0
- package/template/.claude/skills/stage-transition/CLAUDE.md +0 -0
- package/template/.claude/skills/stage-transition/prompts/CLAUDE.md +0 -0
- package/template/config/CLAUDE.md +0 -0
- package/template/scripts/CLAUDE.md +0 -0
- package/template/stages/01-brainstorm/HANDOFF.md +0 -110
- package/template/stages/01-brainstorm/inputs/CLAUDE.md +0 -0
- package/template/stages/01-brainstorm/inputs/project_brief.md +0 -40
- package/template/stages/01-brainstorm/outputs/CLAUDE.md +0 -0
- package/template/stages/01-brainstorm/outputs/ideas.md +0 -159
- package/template/stages/01-brainstorm/outputs/requirements_analysis.md +0 -222
- package/template/stages/01-brainstorm/prompts/CLAUDE.md +0 -0
- package/template/stages/01-brainstorm/templates/CLAUDE.md +0 -0
- package/template/stages/02-research/HANDOFF.md +0 -158
- package/template/stages/02-research/outputs/CLAUDE.md +0 -0
- package/template/stages/02-research/outputs/feasibility_report.md +0 -176
- package/template/stages/02-research/outputs/tech_research.md +0 -403
- package/template/stages/02-research/prompts/CLAUDE.md +0 -0
- package/template/stages/03-planning/HANDOFF.md +0 -168
- package/template/stages/03-planning/outputs/CLAUDE.md +0 -0
- package/template/stages/03-planning/outputs/architecture.md +0 -400
- package/template/stages/03-planning/outputs/implementation.yaml +0 -209
- package/template/stages/03-planning/outputs/project_plan.md +0 -204
- package/template/stages/03-planning/outputs/tech_stack.md +0 -176
- package/template/stages/03-planning/prompts/CLAUDE.md +0 -0
- package/template/stages/04-ui-ux/HANDOFF.md +0 -165
- package/template/stages/04-ui-ux/outputs/CLAUDE.md +0 -0
- package/template/stages/04-ui-ux/outputs/design_system.md +0 -449
- package/template/stages/04-ui-ux/outputs/user_flows.md +0 -321
- package/template/stages/04-ui-ux/outputs/wireframes.md +0 -241
- package/template/stages/04-ui-ux/prompts/CLAUDE.md +0 -0
- package/template/stages/05-task-management/HANDOFF.md +0 -187
- package/template/stages/05-task-management/outputs/CLAUDE.md +0 -0
- package/template/stages/05-task-management/outputs/milestones.md +0 -253
- package/template/stages/05-task-management/outputs/sprint_plan.md +0 -203
- package/template/stages/05-task-management/outputs/tasks.md +0 -402
- package/template/stages/05-task-management/prompts/CLAUDE.md +0 -0
- package/template/stages/05-task-management/templates/CLAUDE.md +0 -0
- package/template/stages/06-implementation/HANDOFF.md +0 -184
- package/template/stages/06-implementation/prompts/CLAUDE.md +0 -0
- package/template/stages/07-refactoring/HANDOFF.md +0 -82
- package/template/stages/07-refactoring/outputs/refactoring_report.md +0 -102
- package/template/stages/07-refactoring/prompts/CLAUDE.md +0 -0
- package/template/stages/08-qa/HANDOFF.md +0 -114
- package/template/stages/08-qa/outputs/qa_report.md +0 -138
- package/template/stages/08-qa/prompts/CLAUDE.md +0 -0
- package/template/stages/09-testing/HANDOFF.md +0 -118
- package/template/stages/09-testing/outputs/test_report.md +0 -146
- package/template/stages/09-testing/prompts/CLAUDE.md +0 -0
- package/template/stages/10-deployment/HANDOFF.md +0 -141
- package/template/stages/10-deployment/prompts/CLAUDE.md +0 -0
- package/template/stages/10-deployment/templates/CLAUDE.md +0 -0
- package/template/state/templates/CLAUDE.md +0 -0
|
@@ -1,204 +0,0 @@
|
|
|
1
|
-
# 📅 Snake Game - 프로젝트 계획
|
|
2
|
-
|
|
3
|
-
> 생성일: 2026-01-21
|
|
4
|
-
> 스테이지: 03-planning
|
|
5
|
-
> 프로젝트: snake-game
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 1. 마일스톤 정의
|
|
10
|
-
|
|
11
|
-
### Phase 1: MVP (핵심 기능)
|
|
12
|
-
|
|
13
|
-
| 마일스톤 | 목표 | 완료 기준 |
|
|
14
|
-
|---------|------|----------|
|
|
15
|
-
| M1.1 | 프로젝트 셋업 | Vite + React + TypeScript 환경 구성 완료 |
|
|
16
|
-
| M1.2 | 게임 보드 렌더링 | Canvas에 그리드 표시, 뱀 초기 위치 렌더링 |
|
|
17
|
-
| M1.3 | 뱀 이동 | 방향키로 뱀 이동, 게임 루프 동작 |
|
|
18
|
-
| M1.4 | 먹이 시스템 | 먹이 생성, 먹이 충돌 시 뱀 성장 |
|
|
19
|
-
| M1.5 | 충돌 감지 | 벽/자기 몸 충돌 시 게임 오버 |
|
|
20
|
-
| M1.6 | 점수 & UI | 점수 표시, 게임 오버 화면, 재시작 |
|
|
21
|
-
|
|
22
|
-
### Phase 2: 향상된 기능
|
|
23
|
-
|
|
24
|
-
| 마일스톤 | 목표 | 완료 기준 |
|
|
25
|
-
|---------|------|----------|
|
|
26
|
-
| M2.1 | 레벨 시스템 | 점수 증가 시 속도 증가 |
|
|
27
|
-
| M2.2 | 최고 점수 | localStorage 저장/불러오기 |
|
|
28
|
-
| M2.3 | 일시정지 | P/Escape 키로 일시정지/재개 |
|
|
29
|
-
| M2.4 | 모바일 지원 | 터치 스와이프 + 방향 버튼 |
|
|
30
|
-
|
|
31
|
-
### Phase 3: 폴리싱
|
|
32
|
-
|
|
33
|
-
| 마일스톤 | 목표 | 완료 기준 |
|
|
34
|
-
|---------|------|----------|
|
|
35
|
-
| M3.1 | 반응형 디자인 | 다양한 화면 크기 대응 |
|
|
36
|
-
| M3.2 | 테스트 작성 | 단위 테스트 커버리지 80%+ |
|
|
37
|
-
| M3.3 | 배포 | GitHub Pages 또는 Vercel 배포 |
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## 2. 스프린트 계획
|
|
42
|
-
|
|
43
|
-
### Sprint 1: 프로젝트 기반 (04-ui-ux ~ 05-task-management)
|
|
44
|
-
|
|
45
|
-
| 태스크 | 담당 스테이지 | 산출물 |
|
|
46
|
-
|--------|-------------|--------|
|
|
47
|
-
| UI/UX 와이어프레임 | 04-ui-ux | wireframes.md |
|
|
48
|
-
| 디자인 토큰 정의 | 04-ui-ux | design-tokens.md |
|
|
49
|
-
| 태스크 분해 | 05-task-management | tasks.md |
|
|
50
|
-
| 스프린트 계획 | 05-task-management | sprint-plan.md |
|
|
51
|
-
|
|
52
|
-
### Sprint 2: MVP 구현 (06-implementation)
|
|
53
|
-
|
|
54
|
-
| 태스크 | 우선순위 | 예상 시간 |
|
|
55
|
-
|--------|---------|----------|
|
|
56
|
-
| 프로젝트 초기화 (Vite) | P0 | 10분 |
|
|
57
|
-
| 타입 정의 | P0 | 10분 |
|
|
58
|
-
| 상수 정의 | P0 | 10분 |
|
|
59
|
-
| useGameLoop 훅 | P0 | 15분 |
|
|
60
|
-
| useKeyboard 훅 | P0 | 15분 |
|
|
61
|
-
| gameReducer 구현 | P0 | 20분 |
|
|
62
|
-
| collision.ts 구현 | P0 | 15분 |
|
|
63
|
-
| renderer.ts 구현 | P0 | 20분 |
|
|
64
|
-
| CanvasLayer 컴포넌트 | P0 | 15분 |
|
|
65
|
-
| GameEngine 컴포넌트 | P0 | 20분 |
|
|
66
|
-
| ScoreBoard 컴포넌트 | P1 | 10분 |
|
|
67
|
-
| GameOverModal 컴포넌트 | P1 | 15분 |
|
|
68
|
-
| App 통합 | P0 | 15분 |
|
|
69
|
-
|
|
70
|
-
### Sprint 3: 기능 확장 (06-implementation 계속)
|
|
71
|
-
|
|
72
|
-
| 태스크 | 우선순위 | 예상 시간 |
|
|
73
|
-
|--------|---------|----------|
|
|
74
|
-
| 레벨 시스템 | P1 | 15분 |
|
|
75
|
-
| useHighScore 훅 | P1 | 15분 |
|
|
76
|
-
| 일시정지 기능 | P1 | 10분 |
|
|
77
|
-
| useSwipe 훅 | P1 | 20분 |
|
|
78
|
-
| MobileControls 컴포넌트 | P1 | 20분 |
|
|
79
|
-
| StartScreen 컴포넌트 | P2 | 15분 |
|
|
80
|
-
|
|
81
|
-
### Sprint 4: 품질 개선 (07-refactoring ~ 08-qa)
|
|
82
|
-
|
|
83
|
-
| 태스크 | 담당 스테이지 | 예상 시간 |
|
|
84
|
-
|--------|-------------|----------|
|
|
85
|
-
| 코드 리뷰 & 리팩토링 | 07-refactoring | 30분 |
|
|
86
|
-
| 성능 최적화 | 07-refactoring | 20분 |
|
|
87
|
-
| 버그 수정 | 08-qa | 20분 |
|
|
88
|
-
| 엣지 케이스 테스트 | 08-qa | 15분 |
|
|
89
|
-
|
|
90
|
-
### Sprint 5: 테스트 & 배포 (09-testing ~ 10-deployment)
|
|
91
|
-
|
|
92
|
-
| 태스크 | 담당 스테이지 | 예상 시간 |
|
|
93
|
-
|--------|-------------|----------|
|
|
94
|
-
| 단위 테스트 작성 | 09-testing | 30분 |
|
|
95
|
-
| E2E 테스트 작성 | 09-testing | 20분 |
|
|
96
|
-
| 빌드 설정 | 10-deployment | 10분 |
|
|
97
|
-
| 배포 | 10-deployment | 15분 |
|
|
98
|
-
|
|
99
|
-
---
|
|
100
|
-
|
|
101
|
-
## 3. 의존성 그래프
|
|
102
|
-
|
|
103
|
-
```
|
|
104
|
-
프로젝트 초기화
|
|
105
|
-
│
|
|
106
|
-
▼
|
|
107
|
-
┌──────┴──────┐
|
|
108
|
-
│ │
|
|
109
|
-
▼ ▼
|
|
110
|
-
타입 정의 상수 정의
|
|
111
|
-
│ │
|
|
112
|
-
└──────┬──────┘
|
|
113
|
-
│
|
|
114
|
-
▼
|
|
115
|
-
┌──────┴──────┬──────────────┐
|
|
116
|
-
│ │ │
|
|
117
|
-
▼ ▼ ▼
|
|
118
|
-
useGameLoop useKeyboard collision.ts
|
|
119
|
-
│ │ │
|
|
120
|
-
└─────────────┼──────────────┘
|
|
121
|
-
│
|
|
122
|
-
▼
|
|
123
|
-
gameReducer
|
|
124
|
-
│
|
|
125
|
-
▼
|
|
126
|
-
renderer.ts
|
|
127
|
-
│
|
|
128
|
-
▼
|
|
129
|
-
CanvasLayer
|
|
130
|
-
│
|
|
131
|
-
▼
|
|
132
|
-
GameEngine
|
|
133
|
-
│
|
|
134
|
-
┌──────┼──────┐
|
|
135
|
-
│ │ │
|
|
136
|
-
▼ ▼ ▼
|
|
137
|
-
ScoreBoard Modal App
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
## 4. 리스크 관리
|
|
143
|
-
|
|
144
|
-
### 기술적 리스크
|
|
145
|
-
|
|
146
|
-
| 리스크 | 확률 | 영향 | 대응 |
|
|
147
|
-
|--------|------|------|------|
|
|
148
|
-
| Canvas 성능 이슈 | 낮 | 중 | requestAnimationFrame 최적화 |
|
|
149
|
-
| 모바일 터치 지연 | 중 | 중 | passive 리스너, 즉시 응답 |
|
|
150
|
-
| 상태 동기화 문제 | 중 | 높 | useRef로 게임 상태 분리 |
|
|
151
|
-
|
|
152
|
-
### 일정 리스크
|
|
153
|
-
|
|
154
|
-
| 리스크 | 확률 | 영향 | 대응 |
|
|
155
|
-
|--------|------|------|------|
|
|
156
|
-
| 기능 범위 확대 | 중 | 중 | MVP 우선, Phase 분리 |
|
|
157
|
-
| 디버깅 시간 초과 | 중 | 중 | 단계별 테스트 |
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
## 5. 완료 기준 (Definition of Done)
|
|
162
|
-
|
|
163
|
-
### 코드 레벨
|
|
164
|
-
- [ ] TypeScript 컴파일 에러 0개
|
|
165
|
-
- [ ] ESLint 경고 0개
|
|
166
|
-
- [ ] 단위 테스트 커버리지 80%+
|
|
167
|
-
|
|
168
|
-
### 기능 레벨
|
|
169
|
-
- [ ] 방향키로 뱀 이동 가능
|
|
170
|
-
- [ ] 먹이 먹으면 길이 증가 + 점수 획득
|
|
171
|
-
- [ ] 벽/자기 몸 충돌 시 게임 오버
|
|
172
|
-
- [ ] 게임 재시작 가능
|
|
173
|
-
- [ ] 최고 점수 저장/표시
|
|
174
|
-
|
|
175
|
-
### 품질 레벨
|
|
176
|
-
- [ ] 60fps 유지 (Chrome DevTools 확인)
|
|
177
|
-
- [ ] 모바일 터치 작동
|
|
178
|
-
- [ ] 접근성 기본 준수 (키보드 네비게이션)
|
|
179
|
-
|
|
180
|
-
---
|
|
181
|
-
|
|
182
|
-
## 6. 스테이지별 예상 시간
|
|
183
|
-
|
|
184
|
-
| 스테이지 | 예상 시간 | 주요 산출물 |
|
|
185
|
-
|---------|----------|------------|
|
|
186
|
-
| 04-ui-ux | 15분 | wireframes.md, design-tokens.md |
|
|
187
|
-
| 05-task-management | 15분 | tasks.md, sprint-plan.md |
|
|
188
|
-
| 06-implementation | 60분 | 소스 코드 전체 |
|
|
189
|
-
| 07-refactoring | 30분 | 최적화된 코드 |
|
|
190
|
-
| 08-qa | 20분 | 버그 수정 |
|
|
191
|
-
| 09-testing | 30분 | 테스트 코드 |
|
|
192
|
-
| 10-deployment | 20분 | 배포된 앱 |
|
|
193
|
-
| **총계** | **~3시간** | - |
|
|
194
|
-
|
|
195
|
-
---
|
|
196
|
-
|
|
197
|
-
## ✅ 프로젝트 계획 체크리스트
|
|
198
|
-
|
|
199
|
-
- [x] 마일스톤 정의
|
|
200
|
-
- [x] 스프린트 계획
|
|
201
|
-
- [x] 의존성 그래프
|
|
202
|
-
- [x] 리스크 관리 계획
|
|
203
|
-
- [x] 완료 기준 정의
|
|
204
|
-
- [x] 시간 추정
|
|
@@ -1,176 +0,0 @@
|
|
|
1
|
-
# 🔧 Snake Game - 기술 스택 결정
|
|
2
|
-
|
|
3
|
-
> 생성일: 2026-01-21
|
|
4
|
-
> 스테이지: 03-planning
|
|
5
|
-
> 프로젝트: snake-game
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 📋 최종 기술 스택
|
|
10
|
-
|
|
11
|
-
### 핵심 스택
|
|
12
|
-
|
|
13
|
-
| 카테고리 | 선택 | 버전 | 근거 |
|
|
14
|
-
|---------|------|------|------|
|
|
15
|
-
| **프레임워크** | React | ^18.2.0 | 컴포넌트 기반, 훅 시스템 |
|
|
16
|
-
| **언어** | TypeScript | ^5.3.0 | 타입 안전성, IDE 지원 |
|
|
17
|
-
| **빌드** | Vite | ^5.0.0 | 빠른 HMR, 최적화된 빌드 |
|
|
18
|
-
| **렌더링** | Canvas API | 네이티브 | 게임 성능, 60fps |
|
|
19
|
-
| **상태관리** | useReducer + useRef | React 내장 | 외부 의존성 최소화 |
|
|
20
|
-
|
|
21
|
-
### 개발 도구
|
|
22
|
-
|
|
23
|
-
| 카테고리 | 선택 | 버전 | 용도 |
|
|
24
|
-
|---------|------|------|------|
|
|
25
|
-
| **린터** | ESLint | ^8.55.0 | 코드 품질 |
|
|
26
|
-
| **포맷터** | Prettier | ^3.1.0 | 코드 일관성 |
|
|
27
|
-
| **테스트** | Vitest | ^1.1.0 | 단위/통합 테스트 |
|
|
28
|
-
| **E2E** | Playwright | ^1.40.0 | E2E 테스트 |
|
|
29
|
-
|
|
30
|
-
### 스타일링
|
|
31
|
-
|
|
32
|
-
| 카테고리 | 선택 | 근거 |
|
|
33
|
-
|---------|------|------|
|
|
34
|
-
| **CSS** | CSS Modules | 스코프 격리, 번들 최적화 |
|
|
35
|
-
| **대안** | Tailwind CSS | 빠른 프로토타이핑 (선택) |
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## 📦 package.json 의존성
|
|
40
|
-
|
|
41
|
-
```json
|
|
42
|
-
{
|
|
43
|
-
"name": "snake-game",
|
|
44
|
-
"private": true,
|
|
45
|
-
"version": "1.0.0",
|
|
46
|
-
"type": "module",
|
|
47
|
-
"scripts": {
|
|
48
|
-
"dev": "vite",
|
|
49
|
-
"build": "tsc && vite build",
|
|
50
|
-
"preview": "vite preview",
|
|
51
|
-
"lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
|
|
52
|
-
"format": "prettier --write \"src/**/*.{ts,tsx,css}\"",
|
|
53
|
-
"typecheck": "tsc --noEmit",
|
|
54
|
-
"test": "vitest",
|
|
55
|
-
"test:coverage": "vitest run --coverage",
|
|
56
|
-
"test:e2e": "playwright test"
|
|
57
|
-
},
|
|
58
|
-
"dependencies": {
|
|
59
|
-
"react": "^18.2.0",
|
|
60
|
-
"react-dom": "^18.2.0"
|
|
61
|
-
},
|
|
62
|
-
"devDependencies": {
|
|
63
|
-
"@types/react": "^18.2.43",
|
|
64
|
-
"@types/react-dom": "^18.2.17",
|
|
65
|
-
"@typescript-eslint/eslint-plugin": "^6.14.0",
|
|
66
|
-
"@typescript-eslint/parser": "^6.14.0",
|
|
67
|
-
"@vitejs/plugin-react": "^4.2.1",
|
|
68
|
-
"@vitest/coverage-v8": "^1.1.0",
|
|
69
|
-
"@testing-library/react": "^14.1.0",
|
|
70
|
-
"@testing-library/jest-dom": "^6.1.6",
|
|
71
|
-
"@playwright/test": "^1.40.0",
|
|
72
|
-
"eslint": "^8.55.0",
|
|
73
|
-
"eslint-plugin-react-hooks": "^4.6.0",
|
|
74
|
-
"eslint-plugin-react-refresh": "^0.4.5",
|
|
75
|
-
"jsdom": "^23.0.1",
|
|
76
|
-
"prettier": "^3.1.0",
|
|
77
|
-
"typescript": "^5.3.0",
|
|
78
|
-
"vite": "^5.0.0",
|
|
79
|
-
"vitest": "^1.1.0"
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## ⚖️ 기술 결정 근거
|
|
87
|
-
|
|
88
|
-
### 1. React vs Vue vs Svelte
|
|
89
|
-
|
|
90
|
-
| 항목 | React | Vue | Svelte |
|
|
91
|
-
|------|-------|-----|--------|
|
|
92
|
-
| 생태계 | ⭐⭐⭐ | ⭐⭐ | ⭐ |
|
|
93
|
-
| 학습 곡선 | 중간 | 낮음 | 낮음 |
|
|
94
|
-
| 게임 개발 자료 | 많음 | 보통 | 적음 |
|
|
95
|
-
| 커뮤니티 | 최대 | 큼 | 성장 중 |
|
|
96
|
-
|
|
97
|
-
**선택: React** - 풍부한 게임 개발 자료, 훅 시스템 활용
|
|
98
|
-
|
|
99
|
-
### 2. Canvas vs CSS Grid vs SVG
|
|
100
|
-
|
|
101
|
-
| 항목 | Canvas | CSS Grid | SVG |
|
|
102
|
-
|------|--------|----------|-----|
|
|
103
|
-
| 성능 (대량 요소) | ⭐⭐⭐ | ⭐ | ⭐⭐ |
|
|
104
|
-
| 구현 복잡도 | 중간 | 낮음 | 높음 |
|
|
105
|
-
| 애니메이션 | ⭐⭐⭐ | ⭐⭐ | ⭐⭐ |
|
|
106
|
-
| 반응형 | 코드 필요 | 자동 | 자동 |
|
|
107
|
-
|
|
108
|
-
**선택: Canvas** - 게임에 최적화, 60fps 보장
|
|
109
|
-
|
|
110
|
-
### 3. 상태 관리: useReducer vs Redux vs Zustand
|
|
111
|
-
|
|
112
|
-
| 항목 | useReducer | Redux | Zustand |
|
|
113
|
-
|------|-----------|-------|---------|
|
|
114
|
-
| 번들 크기 | 0KB | ~43KB | ~3KB |
|
|
115
|
-
| 복잡도 | 낮음 | 높음 | 낮음 |
|
|
116
|
-
| 게임 적합성 | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ |
|
|
117
|
-
|
|
118
|
-
**선택: useReducer** - 외부 의존성 없음, 게임 규모에 적합
|
|
119
|
-
|
|
120
|
-
### 4. Vite vs CRA vs Next.js
|
|
121
|
-
|
|
122
|
-
| 항목 | Vite | CRA | Next.js |
|
|
123
|
-
|------|------|-----|---------|
|
|
124
|
-
| 빌드 속도 | ⭐⭐⭐ | ⭐ | ⭐⭐ |
|
|
125
|
-
| 설정 복잡도 | 낮음 | 낮음 | 중간 |
|
|
126
|
-
| 정적 빌드 | ⭐⭐⭐ | ⭐⭐ | ⭐⭐⭐ |
|
|
127
|
-
|
|
128
|
-
**선택: Vite** - 빠른 개발 경험, 최적화된 빌드
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
## 🚫 미사용 기술
|
|
133
|
-
|
|
134
|
-
| 기술 | 미사용 이유 |
|
|
135
|
-
|------|-----------|
|
|
136
|
-
| Phaser.js | 게임 엔진 금지 (순수 React) |
|
|
137
|
-
| PixiJS | 게임 엔진 금지 |
|
|
138
|
-
| jQuery | 레거시, React와 충돌 |
|
|
139
|
-
| MobX | 과도한 복잡성 |
|
|
140
|
-
| Next.js | SSR 불필요 (정적 게임) |
|
|
141
|
-
| Sass/SCSS | CSS Modules로 충분 |
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
## 📁 프로젝트 생성 명령
|
|
146
|
-
|
|
147
|
-
```bash
|
|
148
|
-
# Vite로 React + TypeScript 프로젝트 생성
|
|
149
|
-
npm create vite@latest snake-game -- --template react-ts
|
|
150
|
-
|
|
151
|
-
# 디렉토리 이동
|
|
152
|
-
cd snake-game
|
|
153
|
-
|
|
154
|
-
# 의존성 설치
|
|
155
|
-
npm install
|
|
156
|
-
|
|
157
|
-
# 개발 도구 설치
|
|
158
|
-
npm install -D @vitest/coverage-v8 @testing-library/react \
|
|
159
|
-
@testing-library/jest-dom jsdom @playwright/test
|
|
160
|
-
|
|
161
|
-
# 개발 서버 시작
|
|
162
|
-
npm run dev
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
---
|
|
166
|
-
|
|
167
|
-
## ✅ 기술 스택 체크리스트
|
|
168
|
-
|
|
169
|
-
- [x] 핵심 프레임워크 선택 (React 18)
|
|
170
|
-
- [x] 언어 선택 (TypeScript 5)
|
|
171
|
-
- [x] 빌드 도구 선택 (Vite 5)
|
|
172
|
-
- [x] 렌더링 방식 선택 (Canvas API)
|
|
173
|
-
- [x] 상태 관리 방식 선택 (useReducer + useRef)
|
|
174
|
-
- [x] 스타일링 방식 선택 (CSS Modules)
|
|
175
|
-
- [x] 테스트 도구 선택 (Vitest + Playwright)
|
|
176
|
-
- [x] 의존성 목록 작성
|
|
File without changes
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
# HANDOFF: 04-ui-ux → 05-task-management
|
|
2
|
-
|
|
3
|
-
> 생성일: 2026-01-21
|
|
4
|
-
> 프로젝트: snake-game
|
|
5
|
-
> 현재 스테이지: 04-ui-ux (완료)
|
|
6
|
-
> 다음 스테이지: 05-task-management
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## ✅ 완료된 작업
|
|
11
|
-
|
|
12
|
-
- [x] 와이어프레임 설계 (5개 화면)
|
|
13
|
-
- [x] 사용자 플로우 다이어그램
|
|
14
|
-
- [x] 디자인 시스템 정의 (Neon Arcade 테마)
|
|
15
|
-
- [x] 컴포넌트 스타일 가이드
|
|
16
|
-
- [x] 반응형 브레이크포인트 정의
|
|
17
|
-
- [x] 애니메이션 명세
|
|
18
|
-
|
|
19
|
-
---
|
|
20
|
-
|
|
21
|
-
## 📁 생성된 산출물
|
|
22
|
-
|
|
23
|
-
| 파일 | 설명 |
|
|
24
|
-
|------|------|
|
|
25
|
-
| `outputs/wireframes.md` | 5개 화면 ASCII 와이어프레임 |
|
|
26
|
-
| `outputs/user_flows.md` | 사용자 플로우 다이어그램 |
|
|
27
|
-
| `outputs/design_system.md` | 디자인 시스템 토큰 |
|
|
28
|
-
| `HANDOFF.md` | 이 문서 |
|
|
29
|
-
|
|
30
|
-
---
|
|
31
|
-
|
|
32
|
-
## 🎨 핵심 디자인 결정사항
|
|
33
|
-
|
|
34
|
-
### 1. 테마: Neon Arcade
|
|
35
|
-
|
|
36
|
-
| 요소 | 스타일 |
|
|
37
|
-
|------|--------|
|
|
38
|
-
| 배경 | 다크 네이비 (#1a1a2e) |
|
|
39
|
-
| 강조 | 네온 그린 (#00ff88) + Glow |
|
|
40
|
-
| 위험 | 네온 레드 (#ff6b6b) + Glow |
|
|
41
|
-
| 하이라이트 | 골드 (#f0e130) |
|
|
42
|
-
|
|
43
|
-
### 2. 컴포넌트 구조
|
|
44
|
-
|
|
45
|
-
```
|
|
46
|
-
App
|
|
47
|
-
├── StartScreen
|
|
48
|
-
│ ├── Logo (Neon Glow)
|
|
49
|
-
│ ├── HighScore
|
|
50
|
-
│ └── StartButton
|
|
51
|
-
│
|
|
52
|
-
├── GameEngine
|
|
53
|
-
│ ├── ScoreBoard
|
|
54
|
-
│ │ ├── CurrentScore
|
|
55
|
-
│ │ └── BestScore
|
|
56
|
-
│ │
|
|
57
|
-
│ ├── CanvasLayer (400x400)
|
|
58
|
-
│ │ ├── Grid (20x20)
|
|
59
|
-
│ │ ├── Snake (Glow)
|
|
60
|
-
│ │ └── Food (Glow)
|
|
61
|
-
│ │
|
|
62
|
-
│ └── MobileControls (D-Pad)
|
|
63
|
-
│
|
|
64
|
-
├── PauseOverlay
|
|
65
|
-
│ ├── ResumeButton
|
|
66
|
-
│ └── QuitButton
|
|
67
|
-
│
|
|
68
|
-
└── GameOverModal
|
|
69
|
-
├── FinalScore
|
|
70
|
-
├── NewHighScore (조건부)
|
|
71
|
-
├── PlayAgainButton
|
|
72
|
-
└── MainMenuLink
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### 3. 반응형 브레이크포인트
|
|
76
|
-
|
|
77
|
-
| 너비 | 대상 | 변경사항 |
|
|
78
|
-
|------|------|----------|
|
|
79
|
-
| < 480px | 모바일 | MobileControls 활성화, 캔버스 축소 |
|
|
80
|
-
| 480px - 768px | 태블릿 | 터치 컨트롤 선택적 |
|
|
81
|
-
| > 768px | 데스크톱 | 키보드 전용, 풀 캔버스 |
|
|
82
|
-
|
|
83
|
-
---
|
|
84
|
-
|
|
85
|
-
## 📐 CSS 변수 요약
|
|
86
|
-
|
|
87
|
-
### 색상
|
|
88
|
-
```css
|
|
89
|
-
--color-primary: #00ff88
|
|
90
|
-
--color-secondary: #ff6b6b
|
|
91
|
-
--color-accent: #f0e130
|
|
92
|
-
--color-bg: #1a1a2e
|
|
93
|
-
--color-surface: #16213e
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
### 타이포그래피
|
|
97
|
-
```css
|
|
98
|
-
--font-pixel: 'Press Start 2P', monospace
|
|
99
|
-
--font-base: 0.875rem (14px)
|
|
100
|
-
--font-lg: 1rem (16px)
|
|
101
|
-
--font-2xl: 1.5rem (24px)
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
### 스페이싱
|
|
105
|
-
```css
|
|
106
|
-
--space-4: 1rem (16px)
|
|
107
|
-
--space-6: 1.5rem (24px)
|
|
108
|
-
--space-8: 2rem (32px)
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
## 🔜 05-task-management 스테이지 작업
|
|
114
|
-
|
|
115
|
-
### 필수 산출물
|
|
116
|
-
|
|
117
|
-
1. **tasks.md**
|
|
118
|
-
- 구현 태스크 분해
|
|
119
|
-
- 우선순위 지정 (P0, P1, P2)
|
|
120
|
-
- 의존성 정의
|
|
121
|
-
|
|
122
|
-
2. **sprint-plan.md**
|
|
123
|
-
- 스프린트 계획
|
|
124
|
-
- 마일스톤 기반 배치
|
|
125
|
-
|
|
126
|
-
3. **HANDOFF.md**
|
|
127
|
-
|
|
128
|
-
### 태스크 분해 기준
|
|
129
|
-
|
|
130
|
-
| 카테고리 | 예시 태스크 |
|
|
131
|
-
|---------|-----------|
|
|
132
|
-
| 설정 | 프로젝트 초기화, 타입 정의, 상수 정의 |
|
|
133
|
-
| 훅 | useGameLoop, useKeyboard, useSwipe, useHighScore |
|
|
134
|
-
| 엔진 | gameReducer, collision.ts, renderer.ts |
|
|
135
|
-
| UI | CanvasLayer, ScoreBoard, GameOverModal, MobileControls |
|
|
136
|
-
| 통합 | GameEngine, App |
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
|
|
140
|
-
## 📊 AI 호출 기록
|
|
141
|
-
|
|
142
|
-
| AI | 시간 | 도구 | 결과 | 상태 |
|
|
143
|
-
|----|------|------|------|------|
|
|
144
|
-
| Gemini | 12:45 | tmux wrapper | UI/UX 설계 | ✅ |
|
|
145
|
-
| ClaudeCode | 12:50 | - | wireframes.md 작성 | ✅ |
|
|
146
|
-
| ClaudeCode | 12:52 | - | user_flows.md 작성 | ✅ |
|
|
147
|
-
| ClaudeCode | 12:55 | - | design_system.md 작성 | ✅ |
|
|
148
|
-
|
|
149
|
-
---
|
|
150
|
-
|
|
151
|
-
## 🚀 다음 단계
|
|
152
|
-
|
|
153
|
-
```bash
|
|
154
|
-
# 다음 스테이지 실행
|
|
155
|
-
/run-stage 05-task-management
|
|
156
|
-
|
|
157
|
-
# 또는
|
|
158
|
-
/tasks
|
|
159
|
-
```
|
|
160
|
-
|
|
161
|
-
---
|
|
162
|
-
|
|
163
|
-
**생성자**: ClaudeCode + Gemini
|
|
164
|
-
**검토자**: -
|
|
165
|
-
**승인**: 대기
|
|
File without changes
|